8种经典算法之直接插入排序
2015-12-08 22:43
246 查看
直接插入排序是稳定的排序方法。 基本思想: 假设待排序的记录存放在数组array[1..n]中,将第一个数取出来,自己array[1]作为一个有序序列,无序序列即array[2..n]。从n=2 至 n = n为止,依次将array 插入到有序序列当中,使插入的记录也是有序的,生成含n个记录的有序序列。 具体操作: 将要插入的记录array[i]取出,保存到临时变量temp中; 找到array[ i ] (i=2,3….,n-1)的正确插入位置k (1≤ k ≤ n-1 ); 将temp与array[i-1]进行比较,若temp大,则将array[i-1]向后移,直到找到比temp小的记录,将temp插入到该记录的后一位置。 如此循环n-1次,直到把这n-1个记录全部插入有序序列。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> var a = [1 , 3 , 7 , 2 , 5 , 9 , 8 ,6 , 4 , 10]; var i , j , temp; for (i = 1; i < 10; i++) { //暂时保存需要插入的那个数,因为在比较时会把a[i]的值覆盖,所以需要先保存 temp = a[i]; for (j = i - 1; j >= 0 && a[j] > temp; j--) { //如果满足条件,则将a[j]向后移动 a[j+1] = a[j]; } //将这个数插入有效序列 a[j+1] = temp; } for (var i = 0; i < 10 ; i++) { document.write(a[i]); } </script> </body> </html>
相关文章推荐
- difference between ldr and ldr.w
- 使用Vim文本编辑器
- 【转】Java生成对应字符串的MD5密码模块
- Scrum Meeting day 4
- Kafka(四) -- 创建多实例集群
- lambda表达式:构造器引用
- Exchange Server 2013 运维系列——恢复已删除或禁用的邮箱
- android5.0自带兼容控件__RecyclerView
- Thread 和 Runnable创建新线程的区别,Runnable可以共享线程类的实例属性
- UGUI_不规则图片点击事件处理
- 正则表达式计算代码数
- Exchange Server 2013 运维系列——增量备份及数据还原
- postgres关键字、常量和数据类型
- HDU5074 dp xingxing在努力
- jquery.tmpl.js
- IntelliJ IDEA 设置 编辑器字体大小背景色及快捷键
- OC - 限时代码
- Linux 文件系统概况
- ORACLE角色(通过DBA创建)
- Struts2运行流程分析