冒泡排序

Posted 啊远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。

1、冒泡排序

  依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。

2、代码实现

 1 package com.wcy.sort;
 2 
 3 public class BubbleSortTest {
 4 
 5     /**
 6      * 方法一
 7      * @param arr
 8      * @return
 9      */
10     public static int[] bubbleSort(int[] arr){
11         int temp = 0;
12         for (int i = 0; i < arr.length - 1; i++) {
13             int flag = 1; // 检测排序结果是否结束
14             for (int j = 0; j < arr.length-1-i; j++) {
15                 if (arr[j] > arr[j+1]) {
16                     temp = arr[j+1];
17                     arr[j+1] = arr[j];
18                     arr[j] = temp;
19                     flag = 0;
20                 }
21             }
22             System.out.print(""+(i+1)+"趟的排序结果为:");
23             showArray(arr);
24             if (flag == 1) {
25                 break;
26             }
27         }
28         
29         return arr;
30     }
31     
32     /**
33      * 方法一
34      * @param arr
35      * @return
36      */
37     public static int[] bubbleSort2(int[] arr){
38         int temp = 0;
39         for (int i = 0; i < arr.length-1; i++) {
40             int flag = 1; // 检测排序结果是否结束
41             for (int j = arr.length-1; j > i; j--) {
42                 if (arr[j] < arr[j-1]) {
43                     temp = arr[j-1];
44                     arr[j-1] = arr[j];
45                     arr[j] = temp;
46                     flag = 0;
47                 }
48             }
49             System.out.print(""+(i+1)+"趟的排序结果为:");
50             showArray(arr);
51             if (flag == 1) {
52                 break;
53             }
54         }
55         
56         return arr;
57     }
58     
59     /**
60      * 打印数组函数
61      * @param arr 待打印的数组
62      */
63     public static void showArray(int[] arr){
64         System.out.print("[");
65         for (int i = 0; i < arr.length; i++) {
66             if (i == arr.length-1) {
67                 System.out.print(arr[i]);
68             }else {
69                 System.out.print(arr[i] + ",");
70             }
71         }
72         System.out.println("]");
73     }
74     
75     /**
76      * 用户页面测试
77      * @param args
78      */
79     public static void main(String[] args) {
80         int[] arr = {36,25,48,12,25,65,43,57};
81         int[] arrResult = bubbleSort2(arr);
82         System.out.print("最终冒泡排序结果为:");
83         showArray(arrResult);
84     }
85 }

 

以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

java冒泡排序法代码

python代码实现鸡尾酒排序(双向冒泡排序)

冒泡排序python代码

视频+图文+动画详解冒泡排序

交换排序(冒泡排序快速排序的算法思想及代码实现)

C语言冒泡排序。