插入排序的原理
来源:互联网 发布:批发源码 编辑:程序博客网 时间:2024/06/13 22:52
插入排序,一般以打牌排列手牌为例子。其实我感觉用两个数组表示更好理解,即使在整个代码中只有一个数组,但
是可以抽象成两个数组。以要进行插入排序的数组内容之前的内容为新数组,原始数组为旧数组。old代表未排序的旧数组;new代表排序后的新数组。new数组中的内容是从old数组中一点一点插入进来并且每插一次进行一次排序,因此new数组永远是有序的。我们默认
new数组中已经插入了old数组的第一项function sortInsert(arr){ var len = arr.length; for(var i = 1;i < len;i++){ var v = arr[i];//从old数组中拿到准备要插入的数组内容 var j = i - 1;//在这里可以认为这是新数组的最后一项,i之前的内容都认为是已排好序的新数组 while(j >= 0 && v < arr[j]){ //当满足条件是,我们需要对新数组进行排序,排序规则:将满足条件的那一位向后移动一位, arr[j+1] = arr[j]; j--; } //待移动完毕后,将v插入到新书组 arr[j+1] = v; }}注:因为在new数组是已经排好序的,arr[i]就是我们此时拿出要插入的内容,arr[i]与它相邻(也就是new数组的最后
一个内容)的数只有大于或者不大于两种关系,如果大于则将v插入j+1个位置即成为新数组队尾,如果小于,将满足条
件的那一位向后移动一位。然后继续比较,重复上述步骤,直到结束,最后将内容插入到已经移动好的新数组中。
阅读全文
0 0
- 插入排序的原理
- 插入排序的原理
- 插入排序的原理与实现
- 插入排序的原理和代码实现
- 冒泡排序、插入排序、选择排序的原理及比较
- 插入法排序及原理
- 直接插入排序算法的原理与实现
- 插入排序(直接插入排序法)原理及代码
- 使用直接插入排序原理对自定义的Vector进行排序
- 插入排序和插入排序的改进
- 排序的之插入排序
- 简单的排序---插入排序
- 插入排序算法原理与实现
- 插入排序原理分析及Java实现
- 插入排序原理(java实现)
- 插入-排序原理及Java 实现
- 插入排序的实现
- 单链表的插入排序
- 《学习opencv》第三章课后习题详解
- sdut oj 2449 走迷宫
- 康托展开
- J
- eclipse窗口基础认识
- 插入排序的原理
- 2017 计蒜之道 初赛 第一场 A题B题
- Tensorflow升级1.0版本
- centos7 安装 matplotlib和numpy
- The Suspects(POJ-1611)
- gps 简介---之一
- win10配置java环境变量,解决javac不是内部或外部命令等问题
- 图的遍历以及二叉树的遍历
- Find Largest Value in Each Tree Row(找出一棵树每一行的最大值)