摘要:冒泡排序方法一測(cè)試代碼運(yùn)行時(shí)間,開始開始方法二鏈接描述選擇排序插入排序錯(cuò)誤示范需要改為,因?yàn)樾枰獜挠业阶笠恢边M(jìn)行大小比較,然后插入,再比較插入正確代碼借鑒自鏈接描述微信公眾號(hào)天字一等
冒泡排序
方法一:
function buble(arr){ for(var i =0;i < arr.length;i++){ for(var j = 0;j < arr.length;j++){ if(arr[i] < arr[j]){ var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } return arr; } //測(cè)試代碼運(yùn)行時(shí)間,console.time()、console.timeEnd() console.time("開始") buble([2,1,3,5,4,7,3,3,3,3,6,3,4,7,2,3,7,8,9,6,343,62,64,63,2]); console.timeEnd("開始")
方法二:
[鏈接描述][1] var arr = [1,3,20,5,2,9,6,4,80,9,4]; var arrLength = arr.length; for(var i=0;iarr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } console.log(arr);
選擇排序
function select(arr){ for(var i = 0;i < arr.length;i++){ for(var j = i;j < arr.length;j++){ if(arr[i] > arr[j]){ var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } return arr; } select([1,3,20,5,2,9,6,4,80,9,4]);
插入排序
錯(cuò)誤示范: function select(arr){ for(var i = 1;i < arr.length;i++){ for(var j = i;j > 0;j--){ //i需要改為j,因?yàn)樾枰獜挠业阶笠恢边M(jìn)行大小比較,然后插入,再比較插入 if(arr[i] < arr[j-1]){ var temp = arr[i]; arr[i] = arr[j-1]; arr[j-1] = temp; } } } return arr; } select([1,3,20,5,2,9,6,4,80,9,4]); 正確代碼: function select(arr){ for(var i = 1;i < arr.length;i++){ for(var j = i;j > 0;j--){ if(arr[j] < arr[j-1]){ var temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; } } } return arr; } select([1,3,20,5,2,9,6,4,80,9,4]);
借鑒自:
鏈接描述
微信公眾號(hào):天字一等
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105465.html
摘要:上一篇數(shù)據(jù)結(jié)構(gòu)與算法樹寫在前面這是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的最后一篇博客,也是在面試中常常會(huì)被問到的一部分內(nèi)容排序和搜索。 上一篇:JS數(shù)據(jù)結(jié)構(gòu)與算法_樹 寫在前面 這是《學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法》的最后一篇博客,也是在面試中常常會(huì)被問到的一部分內(nèi)容:排序和搜索。在這篇博客之前,我每每看到排序頭就是大的,心里想著類似冒泡排序,兩層遍歷啪啪啪就完事了,然后再也無心去深入研究排序相...
摘要:介紹排序算法是算法中最常見的算法之一,我這里要介紹的是排序算法中的三種基本算法冒泡排序選擇排序插入排序,在文章的后面我會(huì)對(duì)三種算法的速度進(jìn)行對(duì)比。 1.介紹 排序算法是算法中最常見的算法之一,我這里要介紹的是排序算法中的三種基本算法:冒泡排序、選擇排序、插入排序,在文章的后面我會(huì)對(duì)三種算法的速度進(jìn)行對(duì)比。 2.冒泡排序 冒泡排序其名來源與其算法實(shí)現(xiàn),會(huì)使得數(shù)組中的元素一個(gè)個(gè)從數(shù)組一端漂...
摘要:本文對(duì)一些排序算法進(jìn)行了簡(jiǎn)單分析,并給出了的代碼實(shí)現(xiàn)。平均時(shí)間復(fù)雜度不好分析,它是冒泡排序是穩(wěn)定的排序算法。冒泡排序是原地排序算法原地排序指的是空間復(fù)雜度是的排序算法。歸并排序,會(huì)將數(shù)組從中間分成左右兩部分。 本文對(duì)一些排序算法進(jìn)行了簡(jiǎn)單分析,并給出了 javascript 的代碼實(shí)現(xiàn)。因?yàn)楸疚陌舜罅康呐判蛩惴?,所以分析不?huì)非常詳細(xì),適合有對(duì)排序算法有一定了解的同學(xué)。本文內(nèi)容其實(shí)不...
本篇有7k+字, 系統(tǒng)梳理了js中常見的12種排序算法。除了基本排序算法,文章還包含了希爾排序、堆排序、桶排序等較為復(fù)雜的排序?qū)崿F(xiàn),如果喜歡請(qǐng)點(diǎn)贊支持~謝謝. 原文: http://louiszhai.github.io/20... 導(dǎo)讀 排序算法可以稱得上是我的盲點(diǎn), 曾幾何時(shí)當(dāng)我知道Chrome的Array.prototype.sort使用了快速排序時(shí), 我的內(nèi)心是奔潰的(啥是快排, 我只知道...
閱讀 2700·2023-04-25 15:22
閱讀 2857·2021-10-11 10:58
閱讀 1084·2021-08-30 09:48
閱讀 1882·2019-08-30 15:56
閱讀 1763·2019-08-30 15:53
閱讀 1130·2019-08-29 11:16
閱讀 1083·2019-08-23 18:34
閱讀 1667·2019-08-23 18:12