1 var A = [5, 2, 4, 6, 1, 3];
 2 console.log("排序前-:")
 3 A.forEach(function (element, index, arr) {
 4     console.log(index, "-----------", element);
 5 });
 6
 7 function insertion_sort(A) {
 8     var len = A.length;
 9     for (var i = 1; i < len; i++) {
10         let key = A[i];
11         let j = i - 1;
12         while (j >= 0 && A[j] > key) {
13             A[j + 1] = A[j];
14             j--;
15         }
16         A[j + 1] = key;
17     }
18 }
19
20 insertion_sort(A);
21 console.log("排序后-");
22 A.forEach(function (element, index, arr) {
23     console.log(index, "-----------", element);
24 });

上面的代码是算法导论里给的伪代码例子,是一种升序的写法,那降序的怎么写呢:

 1 function insertion_sort(A) {
 2     var len = A.length;
 3     for (var i = 1; i < len; i++) {
 4         let key = A[i];
 5         let j = i - 1;
 6         while (j >= 0 && A[j] < key) {
 7             A[j + 1] = A[j];
 8             j--;
 9         }
10
11         A[j + 1] = key;
12     }
13 }

在给一个选择排序的算法(升序):

 1 function SelectSort(A) {
 2     var len = A.length;
 3     for (var i = 0; i < len; i++) {
 4         var min = A[i];
 5         var index = i;
 6         var temp = A[i];
 7         for (var j = i + 1; j < len; j++) {
 8             if (A[j] < min) {
 9                 min = A[j];
10                 index = j;
11             }
12         }
13         A[i] = min;
14         A[index] = temp;
15
16     }
17
18 }

线性排序的方法里还有个冒泡,就是两两互换,也是线性的。下一篇讲解分治。

转载于:https://www.cnblogs.com/huenchao/p/5899633.html

算法分析-插入排序INSERT_SORT与选择排序SELECT_SORT【线性方法】相关推荐

  1. 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。

    题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...

  2. 排序算法分析:冒泡排序、选择排序、插入排序、希尔排序、快速排序

    文章目录 一.冒泡排序 二.选择排序 三.插入排序 四.希尔排序 五.快速排序 一.冒泡排序 冒泡排序(Bubble Sort),它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大 ...

  3. 选择排序(Select_Sort)

    基本思想 每一趟从待排序的数据元素中选出最小(最大)的元素,顺序放在待排序的数列最前,直到全部待排序的数据元素全部排完. 特点 数据结构:数组 稳定性:不稳定 过程 初始关键字:『 8,5,2,6,9 ...

  4. Java【快速排序、插入排序、简单选择排序...】【八大排序-综合实验】

    目   录 1.快速排序 1.1.概念+举例 1.2.完整代码 2.插入排序 2.1.概念+举例 2.2.完整代码 3.简单选择排序 3.1.概念+举例 3.2.完整代码 4.3种排序-综合代码 4. ...

  5. c语言简单选择对字符串数组排序,简单了解C语言中直接插入排序与直接选择排序实现...

    直接插入排序基本思路: 1. 从a[0]开始,也就是从1个元素开始是有序的,a[1]~a[n-1]是无序的. 2. 从a[1]开始并入前面有序的数组,直到n-1. #include #define N ...

  6. 十大经典排序算法(图解与代码)——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序(Python and Java)

    排序 重新排列表中的元素,使表中的元素按照关键字递增或者递减 内部排序: 指在排序期间,元素全部存放在内存中的排序 外部排序: 指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断 ...

  7. 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序

    简介 插入排序和比较排序是排序算法中比较基础和简单的两种,其时间复杂度均为 ,在分析算法时间复杂度时,我们往往会只会分析比较开销,但是交换开销也确实存在.这里我将综合比较开销和交换开销,来分析一下插入 ...

  8. 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  9. java 快速排序算法简单_排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序......

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

最新文章

  1. 滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面
  2. python基础知识面试题-基础篇--【python】面试题汇总
  3. Mistakes(Updating)
  4. 异常:This application has no explicit mapping for /error.以及spring.mvc.view.prefix配置解决
  5. 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...
  6. python是谁维护的_Python 库从开发到维护
  7. VC编程实现IE风格的界面
  8. 实现瀑布流的核心代码
  9. 通过udp及vlc传递视频流
  10. Java 之常用API(一)
  11. 热烈欢迎 东北鸿顺山特产品有限公司网站正式上线
  12. android 手机工具箱,Android超级工具箱,你的手机可能缺一个!
  13. 最新添加了一键加入服务器的功能,功能介绍 - 晴天漫画系统 晴天漫画程序 基于标签的一套自动采集更新漫画系统...
  14. Astah绘制UML图形
  15. SpringBoot自定义banner,如何定制炫酷的banner提升项目B格?
  16. ubuntu 下语系编码转换
  17. 跟奥巴马一起编程(15)
  18. 普元EOS7.5,finishworkitem结束工作项报java.lang.NumberFormatException异常
  19. php获取网址根目录,php获取当前目录_php获得网站根目录的几个方法
  20. WIN7使用过360系统急救箱后出现的任务计划程序文件夹删除的办法

热门文章

  1. 华为机试题2[编程题] 汽水瓶
  2. Spring的声明式事务
  3. 几个常见的 Socket 连接错误及原因
  4. 【Java】函数使用
  5. (转)javascrit中的uriencode
  6. linux ubuntu内核安装位置,在Ubuntu中安装或升级内核 linux kernel
  7. android遥控器用什么测试,Android编程调用红外线遥控功能示例
  8. ansible获取服务器信息,ansible监控服务器资源使用
  9. 可以作为html5页面开发工具的有,HTML5开发工具有哪些
  10. oracle_exporter安装配置,node_exporter安装和配置