分享

Java程序员必学的8大排序算法之插入排序(一)

 禅悟我心 2018-01-19

本文属于原创,如有转载,请标注原作者,版权归本公众号所有。如果你喜欢我写的文章请关注 java资源社区,欢迎大家继续关注本公众号的技术博文。如果您觉得这篇文章对你有所帮助的话,不妨点个赞哈,您的支持就是我坚持原创的动力!

注:微信搜索JavaZiYuanSheQu关注【Java资源社区】公众号

本篇文章主要学习【插入排序】的内容,其余的内容以后持续更新。

一、首先了解8种排序之间的关系,如图所示:

1

不稳定:快速排序,希尔排序,堆排序

2

平均速度最快:快速排序

3

所需辅助空间最少:堆排序

4

所需辅助空间最多:归并排序

二、插入排序

1

直接插入排序

(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

(2)实例:

(3)用java实现:

(4)运行结果截图:

2

希尔排序

(1)基本思想:

算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若

干组,每组中记录的下标相差d,对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到 1 时,进行直接插入排序后,排序完成。

(2)实例:

(3)用java实现:

(4)运行结果截图:

本篇文章学习结束,希望对小伙伴的学习有所帮助,后期会有相关内容更新,敬请关注!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多