java冒泡排序

 1 /**
 2  * 原理:
 3  * 进行n次循环,每次循环从后往前对相邻两个元素进行比较,小的往前,大的往后
 4  * 
 5  * 时间复杂度:
 6  * 平均情况:O(n^2)
 7  * 最好情况:O(n)
 8  * 最坏情况:O(n^2)
 9  *
10  * 稳定性:稳定
11  **/
12 public class 冒泡排序 {
13 
14     public int[] bubbleSort(int[] a, int n) {
15         for (int i = 0; i < n; i++) {
16             int flag = 0;
17             for (int j = n - 1; j > i; j--) {// i or i-1 ?
18                 if (a[j] < a[j - 1]) {
19                     int x = a[j];
20                     a[j] = a[j - 1];
21                     a[j - 1] = x;
22                     flag = 1;
23                 }
24             }
25             if (flag == 0)
26                 break;
27         }
28         return a;
29     }
30 
31     /**
32      * @param args
33      */
34     public static void main(String[] args) {
35         // TODO Auto-generated method stub
36         int[] a = new int[] { 25, 56, 32, 20, 1, 5, 89, 3, 8, 41 };
37         冒泡排序 sort = new 冒泡排序();
38         sort.bubbleSort(a, a.length);
39         for (int i = 0; i < a.length; i++) {
40             System.out.print(a[i] + " ");
41         }
42     }
43 }

 

posted on 2013-10-11 15:17  tianyuanshgan  阅读(139)  评论(0编辑  收藏  举报

导航