选择排序:目测应该是最为基础的排序算法之一,它的中心思想也很简单,就是每次在现有的所有的序列中找到最小的放在序列的一端,然后在剩余的序列中找到最小的放在序列的一端,往复这样的操作就可以了。
选择排序的时间复杂度是O(n^2),是一种基于比较的排序。
/**
* Created by linSir on 17/2/8.
*/
var list = [10, 3, 2, 6, 7, 5, 9];
function getMin(list, a, b) {
var min = list[a];
var xiabiao = a;
for (var i = a; i < b; i++) {
if (list[i] < min) {
xiabiao = i;
min = list[i];
}
}
return xiabiao;
}
function sort(list) {
for (var i = 0; i < list.length; i++) {
var temp;
var a = getMin(list, i, list.length + 1);
temp = list[a];
list[a] = list[i];
list[i] = temp;
}
}
sort(list);
console.log(list);
整个算法也很简单,大家应该看一眼代码就能看懂,这里面语言我采用的是nodejs,当然,算法本身才是重点,语言只是一个工具。它输出的结果:
排序过程
网友评论