第一个,当然是喜闻乐见的冒牌排序。
1 public class Main { 2 3 public static void main(String[] args) { 4 // 冒泡排序; 5 int[] a = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 6 int t;//每次都找一个最大得数放在最后面,然后在第二个for循环中下一次得遍历次数减去1. 7 for (int i = 0; i < 8; i++) { 8 for (int j = 0; j < 8 - i; j++) { 9 if (a[j] > a[j + 1]) { 10 t = a[j]; 11 a[j] = a[j + 1]; 12 a[j + 1] = t; 13 } 14 } 15 } 16 for (int p : a) { 17 System.out.print(p + " "); 18 } 19 20 } 21 22 }
其次是快排。
1 public class Main { 2 3 public static void main(String[] args) { 4 // 快速排序; 5 int[] a = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 6 int i = 0, j = 8; 7 quickSort(a, i, j); 8 for (int array : a) {//遍历数组。 9 System.out.print(array + " "); 10 } 11 12 } 13 14 public static void quickSort(int a[], int left, int right) { 15 if (right>= left) 16 return; 17 int i=left,j=right; 18 int t = a[0]; 19 while (i < j) { 20 while (i < j && a[j] > a[i]) 21 j--; 22 a[j] = a[i]; 23 while (i < j && a[i] < a[j]) 24 i++; 25 a[i] = a[j]; 26 } 27 a[i] = t;//t是作为一个中转站来保存数据的。 28 quickSort(a, i+1, right);//这里相当于递归调用。 29 quickSort(a, left, i-1); 30 } 31 32 }
接下来是选择排序哦!
1 public class Main { 2 3 public static void main(String[] args) { 4 // 选择排序; 5 int[] a = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 6 int min,t;//选择排序是选择一个位置,把后面适合这个位置的数转移过来。 7 for(int i=0;i<8;i++) { 8 min=i; 9 for(int j=i;j<9;j++) { 10 if(a[j]<a[min])min=j; 11 } 12 t=a[i]; 13 a[i]=a[min]; 14 a[min]=t; 15 } 16 for (int array : a) {//遍历数组。 17 System.out.print(array + " "); 18 } 19 20 } 21 22 }