JS排序之選擇排序詳解
本文為大家分享了JS選擇排序的具體代碼,供大家參考,具體內(nèi)容如下
說明
- 時(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ù)組長度越來越短,直到完成排序。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript實(shí)現(xiàn)經(jīng)典排序算法之選擇排序
- JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼
- 基于JavaScript實(shí)現(xiàn)的快速排序算法分析
- 基于JavaScript實(shí)現(xiàn)的希爾排序算法分析
- 基于JavaScript實(shí)現(xiàn)的插入排序算法分析
- JavaScript實(shí)現(xiàn)經(jīng)典排序算法之插入排序
- JavaScript實(shí)現(xiàn)經(jīng)典排序算法之冒泡排序
- Javascript中的常見排序算法
- js算法中的排序、數(shù)組去重詳細(xì)概述
- JavaScript中幾種常見排序算法小結(jié)
- javascript快速排序算法詳解
- JavaScript實(shí)現(xiàn)的選擇排序算法實(shí)例分析
相關(guān)文章
JS使用replace()方法和正則表達(dá)式進(jìn)行字符串的搜索與替換實(shí)例
這篇文章主要介紹了JS使用replace()方法和正則表達(dá)式進(jìn)行字符串的搜索與替換實(shí)例,需要的朋友可以參考下2014-04-04JS 有趣的eval優(yōu)化輸入驗(yàn)證實(shí)例代碼
這篇文章介紹了eval優(yōu)化輸入驗(yàn)證實(shí)例代碼,有需要的朋友可以參考一下2013-09-09input獲取焦點(diǎn)時(shí)底部菜單被頂上來問題的解決辦法
這篇文章主要介紹了解決input獲取焦點(diǎn)時(shí)底部菜單被頂上來問題的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-01-01js數(shù)組相減簡單示例【刪除a數(shù)組所有與b數(shù)組相同元素】
這篇文章主要介紹了js數(shù)組相減,結(jié)合簡單示例形式分析了JavaScript刪除a數(shù)組所有與b數(shù)組相同元素相關(guān)個(gè)遍歷、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2020-03-03javascript實(shí)現(xiàn)Emrips反質(zhì)數(shù)枚舉的示例代碼
下面小編就為大家分享一篇javascript實(shí)現(xiàn)Emrips反質(zhì)數(shù)枚舉的示例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12JavaScript 生成隨機(jī)數(shù)并自動(dòng)大小排序
JavaScript按規(guī)定生成隨機(jī)數(shù),并按指定順序自動(dòng)排序,本例中將生成1——100以內(nèi)的隨機(jī)數(shù),并按照由小到大的順序排列起來。2009-12-12JS實(shí)現(xiàn)移動(dòng)端可折疊導(dǎo)航菜單(現(xiàn)代都市風(fēng))
這篇文章主要介紹了JS如何實(shí)現(xiàn)移動(dòng)端可折疊導(dǎo)航菜單,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07JS 實(shí)現(xiàn)Base64編碼與解碼實(shí)例詳解
這篇文章主要介紹了JS 實(shí)現(xiàn)Base64編碼與解碼實(shí)例詳解的相關(guān)資料,并附實(shí)例代碼,幫助大家學(xué)習(xí)理解此部分知識(shí),需要的朋友可以參考下2016-11-11