java程序员必须知道的八大排序

java程序员必须知道的八大排序

ID:42464263

大小:582.92 KB

页数:17页

时间:2019-09-15

java程序员必须知道的八大排序_第1页
java程序员必须知道的八大排序_第2页
java程序员必须知道的八大排序_第3页
java程序员必须知道的八大排序_第4页
java程序员必须知道的八大排序_第5页
资源描述:

《java程序员必须知道的八大排序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java程序员必知的8大排序2012-06-2814:01without0815博客园我要评论(0)字号:T

2、T收藏E3本文主要详解了Java语言的8大排序的基本思想以及实例解读,详细请看下文AD:51CTO云计算架构师峰会抢票进行中!8种排序Z间的关系:插入排序-只使用内存:选择排序内部排序交换排序L归并排序I基数排序直接插入排序希尔排序简单选择排序堆排序冒泡排序快速排序排序内存和外存结合使用外部排序1,直接插入排序(1)基木思想:在耍排序的一组数中,假设前Uu(n-l)[n>=2]个数己经是排好顺序的,现在要把笫n个数插到前面的冇序数中

3、,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例初始状态57685952❶5768595268>57,不处理q11。❷57685952II57<59<68»插在57之后❸57596852II52<57,插在57之前结果:52575968(3)用java实现1.packagecom.njue;2.3-publicclassinsertSort{4.publicinsertSort(){5.inta[]={49,38,65,97,76,13,27z49,78,34,12z64,5Z4,62,99,98,54,56z17,

4、18,23,34,15,35,25,53,51};6.inttemp=0;7.for(inti=l;i=0&&tempo[j];j--){11.a[j+l]=a[j];12.}13.a[j+1]=temp;14.}15・for(inti=0;i

5、某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当増量减到1时,进行直接插入排序后,排序完成。(2)实例:di=n/2=557685952722896332419IIIIIId&/2=328683324195796595272取奇数…二十

6、牛

7、…•子d3=d2/2=i24193328595272685796取奇数19242833525759687296(3)用java实现1.publicclassshell

8、Sort{2.publicshellSort(){3.inta[]={l,54,6,3,78,34,12,45z56,100}4.doubledl=a.length;5.inttemp=0;6.while(true){7.dl=MatheCeil(dl/2);8.intd=(int)dl;9.for(intx=0;x=0&&tempo[j];j-=d){14.a[j+d]=a[j];15.}1

9、6.a[j+d]=temp;17.}18.}19.if(d==l)20.break;21.}22、for(inti=0;i

10、值,无需交换,完成52575968(3)用java实现1.publicclassselectSort{2.publicselectSort(){3.inta[]={l,54,6,3,78,34,12,45}4.intposition=0;5.for(inti=0;i

11、ition]=a[i];17.a(i]=temp;18.}19.for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。