文章目录[x]
- 1:插入排序
- 2:算法步骤
- 3:算法演示
- 4:排序动画过程解释
插入排序
插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
算法步骤
- 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
- 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)。
来源:https://github.com/hustcc/JS-Sorting-Algorithm
算法演示
排序动画过程解释
- 一开始左端数字已经排序,数字 5 不动
- 然后,取出剩余未操作的左端数字 3
- 将其与已经操作的左侧数字相比较
- 如果左边的数字较大,则交换两个数字
- 这种情况下,由于 5 大于 3 ,所以交换两个数字
- 重复此操作,直到出现一个较小的数字或者数字到达左端
- 数字 3 已经完成排序
- 接下来,和之前一样取出剩余未操作的左端数字 4
- 与其相邻的左边数字进行比较
- 这种情况下,由于 5 大于 4 ,所以交换两个数字
- 继续操作,由于 3 小于 4 ,即出现了更小的数字,所以 4 停止移动
- 数字 4 已经完成排序
- 重复相同的操作,直到所有的数字完成排序
转载自:https://mp.weixin.qq.com/s?__biz=MzUyNjQxNjYyMg==&mid=2247483979&idx=1&sn=b8154f94771a7509f44139e667a2ef84&chksm=fa0e6dcacd79e4dc2645c05720b73d86ca33de41b52ba03e7c9645a02fe9cca919001d612e58&scene=21#wechat_redirect