說明
- 時(shí)間復(fù)雜度指的是一個(gè)算法執(zhí)行所耗費(fèi)的時(shí)間
- 空間復(fù)雜度指運(yùn)行完一個(gè)程序所需內(nèi)存的大小
- 穩(wěn)定指寞宫,如果a=b,a在b的前面,排序后a仍然在b的前面
- 不穩(wěn)定指,如果a=b,a在b的前面差导,排序后可能會(huì)交換位置
JS選擇排序
原理
首先從原始數(shù)組中找到最小的元素,并把該元素放在數(shù)組的最前面猪勇,然后再從剩下的元素中尋找最小的元素设褐,放在之前最小元素的后面,知道排序完畢泣刹。
時(shí)間復(fù)雜度助析,空間復(fù)雜度,穩(wěn)定性
- 平均時(shí)間復(fù)雜度O(n*n)
- 最好情況O(n*n)
- 最差情況O(n*n)
- 空間復(fù)雜度O(1)
- 穩(wěn)定性:不穩(wěn)定
選擇排序的寫法
var example=[8,94,15,88,55,76,21,39];
function selectSort(arr){
var len=arr.length;
var minIndex,temp;
console.time('選擇排序耗時(shí)')项玛;
for(i=0;i<len-1;i++){
minIndex=i;
for(j=i+1;j<len;j++){
if(arr[j]<arr[minIndex]){
minIndex=j;
}
}
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
console.timeEnd('選擇排序耗時(shí)');
return arr;
}
console.log(selectSort(example));
解析
minIndex始終保存著最小值的位置的索引貌笨,隨著i的自增弱判,遍歷的數(shù)組長度越來越短襟沮,直到完成排序。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者