本文属于原创,如有转载,请标注原作者,版权归本公众号所有。如果你喜欢我写的文章请关注 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)运行结果截图: 本篇文章学习结束,希望对小伙伴的学习有所帮助,后期会有相关内容更新,敬请关注! |
|