欢迎来到天天文库
浏览记录
ID:37970727
大小:50.00 KB
页数:10页
时间:2019-06-04
《Java数据结构排序算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/**Tochangethistemplate,chooseTools
2、Templates*andopenthetemplateintheeditor.*/packagecommon;/***Description数据结构内部排序算法集合*@author逍遥随风翼*/publicclassSorting{/***直接插入排序(第二类),更加简洁*@paraminit初始数组*@paramflag大小标记;0:由小到大*@return有序的init数组*/publicint[]insertSort(int[]init,boolea
3、nflag){for(inti=1;i=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]4、始数组*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]halfInsertSort(int[]init,booleanflag){//低位、高位、中位intlow;inthigh;intm;booleanstyle;//第一个元素不予比较for(inti=1;i5、=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增量(初6、始为init的大小)*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]shellSort(int[]init,intincrement,booleanflag){/*增量采用除2计算*/increment/=2;for(inti=increment;i=0&&init[j]>t;j-7、=increment){init[j+increment]=init[j];}init[j+increment]=t;}}else{if(t>init[i-increment]){intj=i-increment;for(;j>=0&&init[j]8、returninit;}/***冒泡排序*@paraminit初始数组*@paramLength数组大小*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]bubbleSort(int[]init,intLength,booleanflag){inttempo;//中间变量booleanstyle;//中间判断if(Length>=1){for(inti=0;iinit[i+1];}else{styl9、e=init[i]
4、始数组*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]halfInsertSort(int[]init,booleanflag){//低位、高位、中位intlow;inthigh;intm;booleanstyle;//第一个元素不予比较for(inti=1;i5、=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增量(初6、始为init的大小)*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]shellSort(int[]init,intincrement,booleanflag){/*增量采用除2计算*/increment/=2;for(inti=increment;i=0&&init[j]>t;j-7、=increment){init[j+increment]=init[j];}init[j+increment]=t;}}else{if(t>init[i-increment]){intj=i-increment;for(;j>=0&&init[j]8、returninit;}/***冒泡排序*@paraminit初始数组*@paramLength数组大小*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]bubbleSort(int[]init,intLength,booleanflag){inttempo;//中间变量booleanstyle;//中间判断if(Length>=1){for(inti=0;iinit[i+1];}else{styl9、e=init[i]
5、=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增量(初
6、始为init的大小)*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]shellSort(int[]init,intincrement,booleanflag){/*增量采用除2计算*/increment/=2;for(inti=increment;i=0&&init[j]>t;j-
7、=increment){init[j+increment]=init[j];}init[j+increment]=t;}}else{if(t>init[i-increment]){intj=i-increment;for(;j>=0&&init[j]8、returninit;}/***冒泡排序*@paraminit初始数组*@paramLength数组大小*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]bubbleSort(int[]init,intLength,booleanflag){inttempo;//中间变量booleanstyle;//中间判断if(Length>=1){for(inti=0;iinit[i+1];}else{styl9、e=init[i]
8、returninit;}/***冒泡排序*@paraminit初始数组*@paramLength数组大小*@paramflag大小模式,true:由小到大*@return有序的init*/publicint[]bubbleSort(int[]init,intLength,booleanflag){inttempo;//中间变量booleanstyle;//中间判断if(Length>=1){for(inti=0;iinit[i+1];}else{styl
9、e=init[i]
此文档下载收益归作者所有