publicstaticvoidmain(String[] args){//随便创建几个乱序的数组int[] data ={1,3,7,5,6,8,9};for(int i=1;i<data.length;i++){for(int j=0;j<data.length-i;j++){//判断数组j下标的值和下一个值谁小,如果当前的小就进行调换位置如若使用>即是升序排序。if(data[j]<data[j+1]){//调换位置 也是可以使用 x=x+y y=x-y y=x-y 形式进行调换 这样就可以每次调换少创建一次变量了int tem = data[j+1];
data[j+1]= data[j];
data[j]= tem;}}}System.out.println(Arrays.toString(data));}
插入排序
publicstaticvoidmain(String[] args){int[] data ={1,3,7,5,6,8,9};for(int i=1;i<data.length;i++){for(int j=i;j>0;j--){if(data[j]>data[j-1]){int tem = data[j-1];
data[j-1]= data[j];
data[j]= tem;}else{break;}}}System.out.println(Arrays.toString(data));}
选择排序
publicstaticvoidmain(String[] args){int[] data ={1,3,7,5,6,8,9};for(int i =0;i<data.length-1;i++){int max = i;for(int j =i+1;j<data.length;j++){if(data[j]>data[max]){
max = j;}}int tem = data[max];
data[max]= data[i];
data[i]= tem;}System.out.println(Arrays.toString(data));}
希尔排序
publicstaticvoidmain(String[] args){int[] data ={1,3,7,5,6,8,9,12,3,4,16,15};int h =1;while(h<data.length/2){
h=2*h+2;}while(h>=1){for(int i = h;i<data.length;i++){for(int j =i;j>=h;i-=h){if(data[j]>data[j-h]){int tem = data[j-h];
data[j-h]= data[j];
data[j]= tem;}else{break;}}}
h/=2;}System.out.println(Arrays.toString(data));}