千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 算法精讲!带你轻松搞懂插入排序是咋回事

算法精讲!带你轻松搞懂插入排序是咋回事

来源:千锋教育
发布人:syq
时间: 2022-09-30 11:41:37 1664509297

  一. 引言

  关于排序法算法其实有很多种,例如简单的有冒泡排序、选择排序,复杂一些的有快速排序、插入排序等,今天小编就给大家讲解一下插入排序的实现过程。

  二. 排序分析

  插入排序,顾名思义就是每次排序时都是对插入的数据进行排列。例如,下面平哥给大家举个例子:

  我们这里有一个数组,内部元素有3、1、5、2,如下图所示:

20

 

  根据上图,我们可以总结出排序过程:

  1. 第一轮比较,先拿前两个数进行比较,较大的放右边。3和1比较后,需要进行交换,变为了1、3;

  2. 第二轮比较,插入元素5,与排好序的右边的数进行比较,也就是3和5比较。比较的结果是,新插入的值,比排好序的两个数中的最大值还要大,所以不用交换;

  3. 第三轮比较,插入元素2,与排好的1、3、5进行比较。先从5开始,2比5小,将2和5交换;然后2再和前面的3比较,结果2比3小,继续交换;然后2再和前面的1比较,结果比1大,不用交换。最终我们确定排序的位置为:1-2-3-5。

  通过以上这三轮的比较,我们可以得出一个结论:

  4个元素进行比较,需要比较3轮。扩展来说,如果有n个元素,则需要比较n-1轮。而每一轮需要进行比较的次数,最多每轮比较n-1次,且只要把新插入的数,比已经排好序的最大数还要大,则直接退出该轮比较。

  三. 代码实现

  根据上面的理论描述,我们可以把上面的排序分析转换成行和列的排序过程,使用循环嵌套,利用如下代码进行实现插入排序:

30

  现在你知道利用Java怎么实现插入排序了吗?

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT