排序-冒泡排序

 1 package test;
 2 
 3 /*
 4  * 冒泡算法  时间复杂度O(n^2)  稳定
 5  * 它会遍历若干次要排序的数列,每次遍历时,
 6  * 它都会从前往后依次的比较相邻两个数的大小;
 7  * 如果前者比后者大,则交换它们的位置。这样,
 8  * 一次遍历之后,最大的元素就在数列的末尾! 
 9  * 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。
10  * 重复此操作,直到整个数列都有序为止!
11  */
12 public class BubbleSort {
13     public static void sort(int[] a) {
14         int N = a.length;
15         //N个数据比较N-1次
16         for(int i=0;i<N-1;i++) {
17             for(int j=0;j<N-i-1;j++) {
18                 //前边比后边大则交换
19                 if(a[j]>a[j+1]) {
20                     int temp = a[j];
21                     a[j] = a[j+1];
22                     a[j+1] = temp;
23                 }
24             }
25         }
26     }
27     public static void main(String[] args) {
28         int[] a = new int[100];
29         for(int i=0;i<a.length;i++) {
30             a[i] = (int)(Math.random()*100);
31         }
32         sort(a);
33         int n = 0; 
34         for(int i:a) {
35             System.out.print(i+" ");
36             n++;
37             if(n==20) {
38                 n = 0;
39                 System.out.println();
40             }
41                 
42         }
43     }
44 }

 

posted @ 2018-09-27 00:05  damon11  阅读(87)  评论(0)    收藏  举报