国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端之多種排序方式

ShevaKuilin / 3002人閱讀

摘要:前言排序是編程中很基礎卻很有學問的算法。常見的內部排序算法有插入排序希爾排序選擇排序冒泡排序歸并排序快速排序堆排序基數排序等。本文主要闡述前端面試中最常問的三種排序冒泡排序選擇排序,其他排序方法詳情點我。冒泡排序算法描述比較相鄰的元素。

前言

排序是編程中很基礎卻很有學問的算法。常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數排序等。本文主要闡述前端面試中最常問的三種排序:冒泡排序、選擇排序,其他排序方法詳情點我。
*本文參考鏈接點我。

冒泡排序

算法描述:

比較相鄰的元素。如果前一個比后一個大,就交換他們兩個,這樣循環到最后,最后一位數將是最大的數。

最后一個數確定了后不再進行比較,重復步驟1,不斷確定新一輪最大的數值后將其固定不比較,最后所有數據比較完則完成排序。

動圖演示:

代碼實現:

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;   
}
選擇排序

算法描述:每次都找一個最大或者最小的排在開始即可。例如,你想從小到大排列,就找出最大的放第一位,通過循環不斷找出當時最大值并插入第一位,最后就會從小到大排列了。

動圖演示:

代碼實現:

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]) {     // 尋找最小的數   
                minIndex = j;                 // 將最小數的索引保存   
            }   
        }   
        temp = arr[i];   
        arr[i] = arr[minIndex];   
        arr[minIndex] = temp;   
    }   
    return arr;   
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110034.html

相關文章

  • 后端知識- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關系如下被人忽視的面向對象的六大原則后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規劃。 Java多線程干貨系列—(四)volatile關鍵字| 掘金技術征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關鍵字,volatile這個關鍵字可能...

    Youngdze 評論0 收藏0
  • 后端知識- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關系如下被人忽視的面向對象的六大原則后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規劃。 Java多線程干貨系列—(四)volatile關鍵字| 掘金技術征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關鍵字,volatile這個關鍵字可能...

    scola666 評論0 收藏0
  • JavaScript專題系列文章

    摘要:專題系列共計篇,主要研究日常開發中一些功能點的實現,比如防抖節流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點是研究專題之函數組合專題系列第十六篇,講解函數組合,并且使用柯里化和函數組合實現模式需求我們需要寫一個函數,輸入,返回。 JavaScript 專題之從零實現 jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實現一個 jQuery 的 ext...

    Maxiye 評論0 收藏0
  • CSS學習筆記(十六) CSS最佳實踐可維護性篇

    摘要:國內各大公司都已經投入使用,在一些常見的網站,如淘寶騰訊小米等移動站點,隨處可見其蹤影。變革之騰訊手機淘寶的設計與實現前端亂燉適配總結樣式重置上文已提及,這里推薦閱讀同學寫的專題文章。 前言 CSS代碼難維護眾所皆知。 為一個元素設置樣式的方式可以通過定義的class、定義的id、元素的標簽名、元素的屬性等選擇器以及這些選擇器的組合來實現; 作用于某個元素上的樣式又可能來自單個樣式規...

    newtrek 評論0 收藏0
  • CSS學習筆記(十六) CSS最佳實踐可維護性篇

    摘要:國內各大公司都已經投入使用,在一些常見的網站,如淘寶騰訊小米等移動站點,隨處可見其蹤影。變革之騰訊手機淘寶的設計與實現前端亂燉適配總結樣式重置上文已提及,這里推薦閱讀同學寫的專題文章。 前言 CSS代碼難維護眾所皆知。 為一個元素設置樣式的方式可以通過定義的class、定義的id、元素的標簽名、元素的屬性等選擇器以及這些選擇器的組合來實現; 作用于某個元素上的樣式又可能來自單個樣式規...

    keke 評論0 收藏0

發表評論

0條評論

ShevaKuilin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<