java实现的几个常用排序算法详细解读

java实现的几个常用排序算法详细解读

ID:26369709

大小:46.18 KB

页数:9页

时间:2018-11-26

java实现的几个常用排序算法详细解读_第1页
java实现的几个常用排序算法详细解读_第2页
java实现的几个常用排序算法详细解读_第3页
java实现的几个常用排序算法详细解读_第4页
java实现的几个常用排序算法详细解读_第5页
资源描述:

《java实现的几个常用排序算法详细解读》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java实现的几个常用排序算法详细解读排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。废话不多说,下面逐一看看经典的排序算法:1.选择排序选择排序的基本思想是遍历数组的过程中,以i代表当前需要排序的序号,则需要在剩余的[i…n-1]中找出其中的最小值,然后将找到的最小值与i指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最大值的子流程,所以人们形象地称之为选择排序。举个实例来看看:1.初始:[38,17,16,16,7,31,39,32,2,11]2.3.i=0:[2,17,1

2、6,16,7,31,39,32,38,11](0th[38]<->8th[2])4.5.i=1:[2,7,16,16,17,31,39,32,38,11](1st[38]<->4th[17])6.7.i=2:[2,7,11,16,17,31,39,32,38,16](2nd[11]<->9th[16])8.9.i=3:[2,7,11,16,17,31,39,32,38,16](无需交换)10.11.i=4:[2,7,11,16,16,31,39,32,38,17](4th[17]<->9th[16])12.13.i=5:[2,7,11,16,16

3、,17,39,32,38,31](5th[31]<->9th[17])14.15.i=6:[2,7,11,16,16,17,31,32,38,39](6th[39]<->9th[31])16.17.i=7:[2,7,11,16,16,17,31,32,38,39](无需交换)18.19.i=8:[2,7,11,16,16,17,31,32,38,39](无需交换)20.21.i=9:[2,7,11,16,16,17,31,32,38,39](无需交换)由例子可以看出,选择排序随着排序的进行(i逐渐增大),比较的次数会越来越少,但是不论数组初始是否

4、有序,选择排序都会从i至数组末尾进行一次选择比较,所以给定长度的数组,选择排序的比较次数是固定的:1+2+3+….+n=n*(n+1)/2,而交换的次数则跟初始数组的顺序有关,如果初始数组顺序为随机,则在最坏情况下,数组元素将会交换n次,最好的情况下则可能0次(数组本身即为有序)。由此可以推出,选择排序的时间复杂度和空间复杂度分别为O(n2)和O(1)(选择排序只需要一个额外空间用于数组元素交换)。实现代码:1./**2.*SelectionSorting3.*/4.SELECTION(newSortable(){5.public

5、sComparable>voidsort(T[]array,booleanascend){6.intlen=array.length;7.for(inti=0;i

6、);17.}18.}19.})2.插入排序插入排序的基本思想是在遍历数组的过程中,假设在序号i之前的元素即[0..i-1]都已经排好序,本趟需要找到i对应的元素x的正确位置k,并且在寻找这个位置k的过程中逐个将比较过的元素往后移一位,为元素x“腾位置”,最后将k对应的元素值赋为x,插入排序也是根据排序的特性来命名的。以下是一个实例,红色标记的数字为插入的数字,被划掉的数字是未参与此次排序的元素,红色标记的数字与被划掉数字之间的元素为逐个向后移动的元素,比如第二趟参与排序的元素为[11,31,12],需要插入的元素为12,但是12当前并没有处于正确

7、的位置,于是我们需要依次与前面的元素31、11做比较,一边比较一边移动比较过的元素,直到找到第一个比12小的元素11时停止比较,此时31对应的索引1则是12需要插入的位置。1.初始:[11,31,12,5,34,30,26,38,36,18]2.3.第一趟:[11,31,12,5,34,30,26,38,36,18](无移动的元素)4.5.第二趟:[11,12,31,5,34,30,26,38,36,18](31向后移动)6.7.第三趟:[5,11,12,31,34,30,26,38,36,18](11,12,31皆向后移动)8.9.第四趟:[5

8、,11,12,31,34,30,26,38,36,18](无移动的元素)10.11.第五趟:[5,11,12,30,31,34,26,3

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

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

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