重温经典之排序 java实现
重新写一遍,都忘记了!
No.1 快排
1 public class FastSort { 2 public static void main(String[] args)throws Exception{ 3 int[] a = {10, 1, 2, 3, 7, 3, 8, 5, 6, 4}; 4 FastSort b1 = new FastSort(); 5 b1.sort(a,0,a.length-1); 6 } 7 void sort(int[] a ,int l ,int r)throws Exception{ 8 int i,j,t,temp; 9 i = l ; 10 j = r ; 11 temp = a[l]; 12 if(l>r){ 13 return; 14 } 15 while (i!=j){ 16 while(i<j && a[j]>=temp){ 17 j--; 18 } 19 while(i<j && a[i]<=temp){ 20 i++; 21 } 22 if(i<j){ 23 t = a[i]; 24 a[i] = a[j]; 25 a[j] = t ; 26 } 27 } 28 a[l] = a[i]; 29 a[i] = temp; 30 System.out.print("/"); 31 for(int h=0;h<a.length;h++){ 32 System.out.print(a[h]+" "); 33 } 34 sort(a , l , i-1); 35 sort(a , i+1 , r); 36 } 37 }
No.2 冒泡排序
1 public class Bubblesort { 2 public static void main(String []args){ 3 int []a = {3,5,72,3,8,90}; 4 sort(a); 5 } 6 public static void sort(int []a){ 7 int temp ; 8 for(int i = a.length -1 ; i > 0 ; i--){ 9 for(int j = 0 ; j < i ; j++){ 10 if(a[j+1] < a[j]){ 11 temp = a[j+1]; 12 a[j+1] = a[j]; 13 a[j] = temp; 14 } 15 } 16 } 17 for(int k = 0 ;k<a.length;k++){ 18 System.out.print(a[k]+","); 19 } 20 } 21 }
No.3 插入排序
1 public class Insertsort { 2 public static void main(String[] args){ 3 int []a = {3,4,4,2,5,4,6,3,2}; 4 sort(a); 5 } 6 static void sort(int[] a){ 7 for(int i = 1 ; i < a.length ; i++){ 8 for(int j = i ; j > 0 ; j--){ 9 if(a[j]<a[j-1]){ 10 int temp = a[j]; 11 a[j] = a[j-1]; 12 a[j-1] = temp; 13 } 14 } 15 } 16 for(int k = 0;k<a.length;k++) 17 System.out.print(a[k]+" "); 18 } 19 }