文档介绍:*Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/mon;/***Description数据结构内部排序算法集合****@author逍遥随风翼*/lassSorting{/***直接插入排序(第二类),更加简洁****@paraminit初始数组****@paramflag大小标记;0:由小到大****@return有序的init数组*/publicint[]insertSort(int[]init,booleanflag){for(inti=1;i<;i++){intt=init[i];if(flag){if(t<init[i-1]){intj=i-1;for(;j>=0&&init[j]>t;j--){init[j+1]=init[j];}init[j+1]=t;}}else{if(t>init[i-1]){intj=i-1;for(;j>=0&&init[j]<t;j--){init[j+1]=init[j];}init[j+1]=t;}}}returninit;}/***折半插入排序****@paraminit初始数组****@paramflag大小模式,true:由小到大****@return有序的init*/publicint[]halfInsertSort(int[]init,booleanflag){//低位、高位、中位intlow;inthigh;intm;booleanstyle;//第一个元素不予比较for(inti=1;i<;i++){low=0;high=i-1;while(low<=high){m=(low+high)/2;if(flag){style=init[i]<init[m];}else{style=init[i]>init[m];}if(init[i]==init[m]){high=m;break;}elseif(style){high=m-1;}else{low=m+1;}}intt=init[high+1];init[high+1]=init[i];for(intj=i;j-1>=high+1;j--){if(j-1!=high+1){init[j]=init[j-1];}else{init[j]=t;}}}returninit;}/***希尔排序****@paraminit初始数值****@paramincrement增量(初始为init的大小)****@paramflag大小模式,true:由小到大****@return有序的init*/publicint[]shellSort(int[]init,intincrement,booleanflag){/*增量采用除2计算*/increment/=2;for(inti=increment;i<;i+=increment){intt=init[i];if(flag){if(t<init[i-increment]){intj=i-increment;for(;j>=0&&init[j]>t;j-=increment){init[j+increment]=init[j];}init[j+increment]=t;}}else{if(t>init[i-increment]){intj=i-increment;for(;j>=0&&init[j]<t;j-=increment){init[j+increment]=init[j];}init[j+increment]=t;}}}/*只要增量大于2(考虑到非整数的情况),则递归*/if(2<=increment){shellSort(init,increment,flag);}returninit;}/***冒泡排序****@paraminit初始数组****@paramLength数组大小****@paramflag大小模式,true:由小到大****@return有序的init*/publicint[]bubbleSort(int[]init,intLength,booleanflag){inttempo;//中间变量booleanstyle;//中间判断if(Length>=1){for(inti=0;i<Length-1;i++){if(flag){style=init[i]>init[i+1];}else{style=init[i]<init[i+1];}if(style){tempo=init[i];init[i]=init[i+1];init[i+1]=tempo;}}bubbleSort(init,Length-1,flag);//递归}returninit;}/***快速排序****@paraminit初始