惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
J
Java Code Geeks
博客园 - 聂微东
量子位
C
Check Point Blog
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
B
Blog
罗磊的独立博客
腾讯CDC
GbyAI
GbyAI
博客园 - 【当耐特】
A
About on SuperTechFans
M
MIT News - Artificial intelligence
U
Unit 42
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队

博客园 - looping

小米公司招聘前端--待遇不错 JSLint for EditPlus 检验js语法 ECMA-262-3 深入解析.第四章. 作用域链 Vim 简洁手册 在 JavaScript 中监听 IME 键盘输入事件 英文已如此搞笑,翻译却更加残暴 古文中惊艳的句子 Nicholas C. Zakas vs John Resig 一场关于YUI3/jQuery的精彩辩论 浅谈 Mousewheel 事件 css 圆角效果,2例 CSS HACK org.hibernate.TransientObjectException: object references an unsaved t... jquery 1.4 append 用法 获取文本中img路径(不是dom中的) [JavaScript]ECMA-262 深入解析 IIS 7.5 下PHP(FastCGI模式)配置手记 Remove duplicates from Array移除数组重复元素 js 翻转颜色 difference between echo and print in php
插入排序 insertion_sort js实现
looping · 2011-09-26 · via 博客园 - looping

一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:

  1. 从第一个元素开始,该元素可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到该位置中
  6. 重复步骤

伪代码如下:

INSERTION-SORT(A)
     
for jto length[A]
         
do keyA[J]
         i
j-1
         
while i>0 and A[i]<key
             
do A[i+1]←A[i]
             i
i-1
         A
[i+1]←key

 js实现如下:

 1 var arr = [5,2,4,6,1,3],key;
 2 for(var j = 1; j < arr.length ; j++){ 
 3    //debugger;
 4     //排好序的
 5     var i = j - 1;
 6     key = arr[j];
 7     while(i >= 0 && arr[i] > key){  
 8         arr[i + 1] = arr[i];       
 9         i --;        
10     }
11     arr[i + 1] = key;
12 }