選擇排序是一種原地址比較排序的算法。
原理如下圖:找到數據結構中最小值然後將其放置在第一位,然後找到第二小的值放到第二位,以此類推。
代碼:
//快速排序
var selectionSort = function(array) {
debugger;
var length = array.length,indexMin;
for(var i = 0; i < length-1; i++){
indexMin = i;
for(j = i; j < length; j++){
if(array[indexMin]>array[j]){
indexMin=j
}
}
if(i != indexMin){
exchange(array,i,indexMin)
}
}
console.log(array)
}
//比較元素交換位置
var exchange = function(array,index1,index2) {
var aux =array[index1];
array[index1] = array[index2];
array[index2] = aux
}
selectionSort([4,2,56,7,3,11,8]);
選擇排序和冒泡排序一樣,會包含兩個循環導致二次方的複雜度。