摘要:前言排序是編程中很基礎(chǔ)卻很有學(xué)問的算法。常見的內(nèi)部排序算法有插入排序希爾排序選擇排序冒泡排序歸并排序快速排序堆排序基數(shù)排序等。本文主要闡述前端面試中最常問的三種排序冒泡排序選擇排序,其他排序方法詳情點我。冒泡排序算法描述比較相鄰的元素。
前言
排序是編程中很基礎(chǔ)卻很有學(xué)問的算法。常見的內(nèi)部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等。本文主要闡述前端面試中最常問的三種排序:冒泡排序、選擇排序,其他排序方法詳情點我。
*本文參考鏈接點我。
算法描述:
比較相鄰的元素。如果前一個比后一個大,就交換他們兩個,這樣循環(huán)到最后,最后一位數(shù)將是最大的數(shù)。
最后一個數(shù)確定了后不再進(jìn)行比較,重復(fù)步驟1,不斷確定新一輪最大的數(shù)值后將其固定不比較,最后所有數(shù)據(jù)比較完則完成排序。
動圖演示:
代碼實現(xiàn):
function bubbleSort(arr) { for (var i = 0; i < arr.length - 1; i++) { for (var j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j+1]) { // 相鄰元素兩兩對比 var temp = arr[j+1]; // 元素交換 arr[j+1] = arr[j]; arr[j] = temp; } } } return arr; }選擇排序
算法描述:每次都找一個最大或者最小的排在開始即可。例如,你想從小到大排列,就找出最大的放第一位,通過循環(huán)不斷找出當(dāng)時最大值并插入第一位,最后就會從小到大排列了。
動圖演示:
代碼實現(xiàn):
function selectionSort(arr) { var minIndex, temp; for (var i = 0; i < arr.length - 1; i++) { minIndex = i; for (var j = i + 1; j < arr.length ; j++) { if (arr[j] < arr[minIndex]) { // 尋找最小的數(shù) minIndex = j; // 將最小數(shù)的索引保存 } } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } return arr; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/110034.html
摘要:常見的八大排序算法,他們之間關(guān)系如下被人忽視的面向?qū)ο蟮牧笤瓌t后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規(guī)劃。 Java多線程干貨系列—(四)volatile關(guān)鍵字| 掘金技術(shù)征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關(guān)鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關(guān)鍵字,volatile這個關(guān)鍵字可能...
摘要:常見的八大排序算法,他們之間關(guān)系如下被人忽視的面向?qū)ο蟮牧笤瓌t后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規(guī)劃。 Java多線程干貨系列—(四)volatile關(guān)鍵字| 掘金技術(shù)征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關(guān)鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關(guān)鍵字,volatile這個關(guān)鍵字可能...
摘要:專題系列共計篇,主要研究日常開發(fā)中一些功能點的實現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實現(xiàn)模式需求我們需要寫一個函數(shù),輸入,返回。 JavaScript 專題之從零實現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實現(xiàn)一個 jQuery 的 ext...
摘要:國內(nèi)各大公司都已經(jīng)投入使用,在一些常見的網(wǎng)站,如淘寶騰訊小米等移動站點,隨處可見其蹤影。變革之騰訊手機淘寶的設(shè)計與實現(xiàn)前端亂燉適配總結(jié)樣式重置上文已提及,這里推薦閱讀同學(xué)寫的專題文章。 前言 CSS代碼難維護(hù)眾所皆知。 為一個元素設(shè)置樣式的方式可以通過定義的class、定義的id、元素的標(biāo)簽名、元素的屬性等選擇器以及這些選擇器的組合來實現(xiàn); 作用于某個元素上的樣式又可能來自單個樣式規(guī)...
摘要:國內(nèi)各大公司都已經(jīng)投入使用,在一些常見的網(wǎng)站,如淘寶騰訊小米等移動站點,隨處可見其蹤影。變革之騰訊手機淘寶的設(shè)計與實現(xiàn)前端亂燉適配總結(jié)樣式重置上文已提及,這里推薦閱讀同學(xué)寫的專題文章。 前言 CSS代碼難維護(hù)眾所皆知。 為一個元素設(shè)置樣式的方式可以通過定義的class、定義的id、元素的標(biāo)簽名、元素的屬性等選擇器以及這些選擇器的組合來實現(xiàn); 作用于某個元素上的樣式又可能來自單個樣式規(guī)...
閱讀 866·2021-11-15 11:37
閱讀 3604·2021-11-11 16:55
閱讀 3270·2021-11-11 11:01
閱讀 998·2019-08-30 15:43
閱讀 2743·2019-08-30 14:12
閱讀 681·2019-08-30 12:58
閱讀 3389·2019-08-29 15:19
閱讀 2025·2019-08-29 13:59