首页 > 编程语言 > 详细

插入排序与选择排序【线性方法】

时间:2016-09-23 14:39:26      阅读:224      评论:0      收藏:0      [点我收藏+]
 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 }

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

插入排序与选择排序【线性方法】

原文:http://www.cnblogs.com/huenchao/p/5899633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!