1 import java.util.Random; 2 public class Test 3 { 4 public static void main(String[] arg){ 5 Random r=new Random(); 6 int[] arrs=new int[10]; 7 for(int i=0;i<arrs.length;i++){ 8 arrs[i]=r.nextInt(50);//随机生成排序数 9 } 10 11 show(arrs);//排序前 12 System.out.println("");//换行 13 14 quick_sort(arrs,0,arrs.length);//快速排序方法 15 insert_sort(arrs);//插入排序 16 bubbling_sort(arrs);//冒泡排序 17 18 show(arrs);//排序后 19 20 21 } 22 23 //显示 24 private static void show(int[] arrs){ 25 for(int i=0;i<arrs.length;i++){ 26 if(i<arrs.length-1){ 27 System.out.print(arrs[i]+","); 28 }else{ 29 System.out.print(arrs[i]); 30 } 31 } 32 } 33 34 //快速排序 35 private static void quick_sort(int[]arrs,int left,int right){ 36 if(left<right){ 37 int i=left; 38 int j=right-1; 39 int middle=arrs[(left+right)/2]; 40 41 while(true){ 42 while(i<right && arrs[i]<middle){ 43 i++; 44 } 45 while(j>0 && arrs[j]>middle){ 46 j--; 47 } 48 if(i==j){ 49 break; 50 } 51 52 //设变量交换两数 53 int temp=0; 54 temp=arrs[i]; 55 arrs[i]=arrs[j]; 56 arrs[j]=temp; 57 58 if(arrs[i]==arrs[j]){ 59 j--; 60 } 61 62 } 63 quick_sort(arrs,left,i); 64 quick_sort(arrs,i+1,right); 65 } 66 } 67 68 //插入排序 69 private static void insert_sort(int[] arrs){ 70 for(int i=0;i<arrs.length;i++){ 71 for(int j=i;j>0&&arrs[j]<arrs[j-1];j--){ 72 /*int temp=0; 73 temp=arrs[j]; 74 arrs[j]=arrs[j-1]; 75 arrs[j-1]=temp;*/ 76 77 //不设变量的交换 78 arrs[j]=arrs[j]+arrs[j-1]; 79 arrs[j-1]=arrs[j]-arrs[j-1]; 80 arrs[j]=arrs[j]-arrs[j-1]; 81 } 82 } 83 } 84 85 //冒泡排序 86 private static void bubbling_sort(int[] arrs){ 87 for(int i=0;i<arrs.length;i++){ 88 for(int j=0;j<arrs.length;j++){ 89 if(arrs[i]<arrs[j]){ 90 arrs[i]=arrs[i]+arrs[j]; 91 arrs[j]=arrs[i]-arrs[j]; 92 arrs[i]=arrs[i]-arrs[j]; 93 } 94 } 95 } 96 } 97 }
运行结果: