欢迎来到天天文库
浏览记录
ID:35478121
大小:61.36 KB
页数:8页
时间:2019-03-25
《java排序算法经典解析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、冒泡排序BubbleSortvoiddoBubbleSort(int[]src){intlen=src.length;for(inti=0;isrc[j]){terrp=src[j];src[j]=src[i];src[i]=tenp;}}printResult(i,src);}}选择扫乍序SelectionSort选择排序的基本思想是:对待排序的记录序列进行遍的处理,第1遍处理是将L[1..
2、n]屮最小者与L⑴交换位置,笫2遍处理是将L[2..n]屮最小者与L⑵交换位置,……,笫i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的顺序排列好了。选择排序与冒泡排序的区别在:冒泡排序每次比较后,如果发现顺序不对立即进行交换,而选择排序不立即进行交换,而是找出最小的元素后再进行交换。voiddoChooseSort(int[]src){intlen=src•length;inttenp;for(inti=0;i3、tenp=src[i];intj;intsamllestLocation=i;//最才勺卜标for(j=i+1;j4、当位置,直到全部插入完毕。插入排序方法分玄接插入排序和折半插入排序两种,这里只介绍宵•接插入排序,折半插入排序留到“查找”内容中进行。voiddoInsertSort2(int[]src){intlen=src.length;for(inti=1;i0;j—){if(src[j-1]>temp){src[j]=src[j一1];}else//如果当前嫩不小AW撤另他朋不小于前而所有触//囲牖面必隔册了序的所以1揍軸当5、前喘的峻break;}src[j]=teiip;printResult(i,src);快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成冇序序列。publicclassQuicksort{publicstaticint[]Quicksort0(int[]pDmtm,intleft,intright){i6、nti=left,j=right;intmiddle,strTerrp;middle=pData[(left+right)/2];do{while((pData[i]middle)&&(j>left))j—;if(i<=j){strTenp=pData[i];pData[i]=pData[j];pData[j]=strTerrp;i++;j—;}}while(i<=j);for(intt=0;t7、th;t++)System.out.print(pData[t]+”");System.out・printin(””);if(lefti)QuickSortO(pData,i,right);returnpData;}publicstaticvoidmain(String!]argv){int[]pData={1,84,85,67,600,88,999};QuickSortO(pData,0,pData.length一18、);//归蒯疗啲合梯去voidMerge(intarray[]zintstart,intmid,intend){intterrpl[10],tenp2[10];intnl,n2;nl=mid一start+1;n2=end一mid;//拷贝前删wafor(inti=0;i
3、tenp=src[i];intj;intsamllestLocation=i;//最才勺卜标for(j=i+1;j4、当位置,直到全部插入完毕。插入排序方法分玄接插入排序和折半插入排序两种,这里只介绍宵•接插入排序,折半插入排序留到“查找”内容中进行。voiddoInsertSort2(int[]src){intlen=src.length;for(inti=1;i0;j—){if(src[j-1]>temp){src[j]=src[j一1];}else//如果当前嫩不小AW撤另他朋不小于前而所有触//囲牖面必隔册了序的所以1揍軸当5、前喘的峻break;}src[j]=teiip;printResult(i,src);快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成冇序序列。publicclassQuicksort{publicstaticint[]Quicksort0(int[]pDmtm,intleft,intright){i6、nti=left,j=right;intmiddle,strTerrp;middle=pData[(left+right)/2];do{while((pData[i]middle)&&(j>left))j—;if(i<=j){strTenp=pData[i];pData[i]=pData[j];pData[j]=strTerrp;i++;j—;}}while(i<=j);for(intt=0;t7、th;t++)System.out.print(pData[t]+”");System.out・printin(””);if(lefti)QuickSortO(pData,i,right);returnpData;}publicstaticvoidmain(String!]argv){int[]pData={1,84,85,67,600,88,999};QuickSortO(pData,0,pData.length一18、);//归蒯疗啲合梯去voidMerge(intarray[]zintstart,intmid,intend){intterrpl[10],tenp2[10];intnl,n2;nl=mid一start+1;n2=end一mid;//拷贝前删wafor(inti=0;i
4、当位置,直到全部插入完毕。插入排序方法分玄接插入排序和折半插入排序两种,这里只介绍宵•接插入排序,折半插入排序留到“查找”内容中进行。voiddoInsertSort2(int[]src){intlen=src.length;for(inti=1;i0;j—){if(src[j-1]>temp){src[j]=src[j一1];}else//如果当前嫩不小AW撤另他朋不小于前而所有触//囲牖面必隔册了序的所以1揍軸当
5、前喘的峻break;}src[j]=teiip;printResult(i,src);快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成冇序序列。publicclassQuicksort{publicstaticint[]Quicksort0(int[]pDmtm,intleft,intright){i
6、nti=left,j=right;intmiddle,strTerrp;middle=pData[(left+right)/2];do{while((pData[i]middle)&&(j>left))j—;if(i<=j){strTenp=pData[i];pData[i]=pData[j];pData[j]=strTerrp;i++;j—;}}while(i<=j);for(intt=0;t7、th;t++)System.out.print(pData[t]+”");System.out・printin(””);if(lefti)QuickSortO(pData,i,right);returnpData;}publicstaticvoidmain(String!]argv){int[]pData={1,84,85,67,600,88,999};QuickSortO(pData,0,pData.length一18、);//归蒯疗啲合梯去voidMerge(intarray[]zintstart,intmid,intend){intterrpl[10],tenp2[10];intnl,n2;nl=mid一start+1;n2=end一mid;//拷贝前删wafor(inti=0;i
7、th;t++)System.out.print(pData[t]+”");System.out・printin(””);if(lefti)QuickSortO(pData,i,right);returnpData;}publicstaticvoidmain(String!]argv){int[]pData={1,84,85,67,600,88,999};QuickSortO(pData,0,pData.length一1
8、);//归蒯疗啲合梯去voidMerge(intarray[]zintstart,intmid,intend){intterrpl[10],tenp2[10];intnl,n2;nl=mid一start+1;n2=end一mid;//拷贝前删wafor(inti=0;i
此文档下载收益归作者所有