選擇排序:目測應該是最為基礎的排序算法之一,它的中心思想也很簡單,就是每次在現有的所有的序列中找到最小的放在序列的一端,然后在剩余的序列中找到最小的放在序列的一端,往復這樣的操作就可以了。
選擇排序的時間復雜度是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,當然,算法本身才是重點,語言只是一個工具。它輸出的結果:
排序過程