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 }