600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java版排序算法简介及冒泡排序以及优化 选择排序 直接插入排序 希尔排序 堆排序

java版排序算法简介及冒泡排序以及优化 选择排序 直接插入排序 希尔排序 堆排序

时间:2019-06-19 18:44:12

相关推荐

java版排序算法简介及冒泡排序以及优化 选择排序 直接插入排序 希尔排序 堆排序

好吧 ~~csdn太难用了。。。。尼玛。。。写了半天的也无法弄进去。。。lz正在找更好地博客,or放在github上打算。。

下边是lz自己的有道云分享,大概内容是

/share/?id=62ed43d615aef54455f47b34be190efb&type=note

真心无语了。。。博主的github:

/wbzj1110/

前言... 2

分类... 2

稳定性... 3

时间复杂度... 4

Java实现版本... 5

1、冒泡排序... 6

2、选择排序... 9

3、直接插入排序... 10

4、希尔排序... 12

5、堆排序... 16

介绍 大小顶堆... 16

堆排序的算法要点... 19

堆排序算法的实现... 19

6、归并排序... 21

递归实现... 23

迭代实现... 24

7、快速排序... 25

代码实现... 25

快速排序的优化... 27

优化选取基准点... 27

优化不必要的交换... 29

优化小数组时的排序方案... 30

优化递归操作... 31

8、总结回顾... 34

9、... 35

10、... 36

11、... 36

12、... 36

前言

分类

稳定性

时间复杂度

/jiuyueguang/article/details/12028393

/frances_han/article/details/6458067

Java实现版本

1、冒泡排序

但是这个有个缺点就是对于 这种的效率很低

2种冒泡改良算法

/tjunxin/article/details/8711389

双向冒泡

/tjunxin/article/details/8711389

总结的最好

/kong357385142/article/details/6343376

java实现方式

正规的冒泡 里边有双向冒泡

2、选择排序

3、直接插入排序

直接插入排序

4、希尔排序

I 1V 5 X 10

注意 iv 表示的是5-1 等于4

同理 ix 表示的是10-1 等于9

从IX变为VI 从9变为6

IX倒转180° 然后

哈哈

直接插入的那种排序

在这2个情况下效果非常高

希尔排序(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序。希尔排序并不稳定,O(1)的额外空间,时间复杂度为O(N*(logN)^2)。最坏的情况下的执行效率和在平均情况下的执行效率相比相差不多。

第一趟排序为总数的10/2也就是间隔为5

第二趟排序排序为5/2 =3间隔为3

第三趟排序间隔为2

排序完成,也是直接插入排序,但是是多个同时进行直插

希尔排序的思想可以利用在其他排序 但是利用在直插更多

直插的源码

修改直插的希尔排序的源码

Gap是间隔数哈 第一趟间隔多少

5、堆排序

介绍大小顶堆

堆排序是完全二叉树

大顶堆 根节点都大于左右孩子

小顶堆:根节点小于左右孩子

堆排序的算法要点

堆排序算法的实现

这里用大顶堆

调整大顶堆 HeapAdjust

与交换swap 根节点与最后一个元素交换

第一个为字符长度

6、归并排序

递归实现

迭代实现

7、快速排序

代码实现

swap就是交换数组 low high位置的值

快速排序的优化

/kf/03/196811.html

优化选取基准点

优化Partition

优化前

优化后

优化不必要的交换

还是该Partition

优化前

优化后

优化小数组时的排序方案

数组小的时候直接插入排序

优化递归操作

原来的

优化的

这样就变为尾递归了

再进一步优化

@这一这里相当于方法quickSor在执行一次时,用了while(low < high)这个循环条件,这里就是关键所在

a.第一次进入循环:这个循环执行了一次递归后,然后执行low = pivot + 1;

b.再次进入循环:执行int pivot = partition(low, high, array);,对右端进行递归,因为(low = povit + 1) > (high = povit -1 ),所以后面的quickSort(low, pivot - 1, array);将会终止,然后重复执行a,b;

进一步优化,递归小的,大的通过尾递归搞定

数组越大效果越明显。

8、总结回顾

稳定性

放在内存与硬盘分为

内排序的分类

时间复杂度空间复杂度

java版排序算法简介及冒泡排序以及优化 选择排序 直接插入排序 希尔排序 堆排序 快速排序及其优化前言2 分类2 稳定性3 时间复杂度4 Java实现版本5 1 冒泡排序6 2 选择排序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。