1 / 11
文档名称:

Java数据结构排序算法.doc

格式:doc   大小:46KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java数据结构排序算法.doc

上传人:bjy0415 2019/6/3 文件大小:46 KB

下载得到文件列表

Java数据结构排序算法.doc

相关文档

文档介绍

文档介绍:*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初始