冒泡排序

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 }
原文地址:https://www.cnblogs.com/wangchaoyuan/p/5980405.html