Javascript常用的數(shù)組排序方法

1. Javascript的 sort() 方法最常用最快的方法!

  • 定義:把數(shù)組按大小順序排列
  • @params:可以沒有,也可以是函數(shù)
  • @return:排好序后的數(shù)組
  • 是否改變原數(shù)組:改變
使用方法:arr.sort():SORT方法中如果不傳遞參數(shù),是無法處理10以上數(shù)字排序的(它默認按照每一項第一個字符來排,不是我們想要的效果)
  • 想要實現(xiàn)多位數(shù)正常排序,需要給SORT傳遞一個函數(shù),函數(shù)中返回a-b實現(xiàn)升序,返回b-a實現(xiàn)降序:
  • arr.sort(function(a,b){return a-b;});
  • 可用箭頭函數(shù)表示:arr.sort((a,b) => a-b);
【升序】
1.png
【降序】
2.png

2. 冒泡排序(從后向前)

3.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出

復(fù)制代碼

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個位置。
  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。
  3. 針對所有的元素重復(fù)以上的步驟,除了最后一個。
  4. 持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。

3. 快速排序:遞歸思想,兩邊快速的排序,冒泡排序的改進

4.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出

復(fù)制代碼

    Math.floor(x)方法是向下取整,返回小于或等于x的最接近的整數(shù)。
    splice(index,num,item)方法是向數(shù)組中添加項目,或是從數(shù)組中刪除項目,并返回被刪除的項目。
  1. index是整數(shù),被操作項目所在的位置(必須)

  2. num是整數(shù),要刪除的項目的數(shù)量,如果為0,表示不刪除(必須)

  3. item是向數(shù)組中添加的新項目,可以是多個(可選)

    push()方法是向數(shù)組末尾添加一個或多個新項目并返回新數(shù)組的長度
    concat()方法連接兩個或多個數(shù)組,不會改變原有數(shù)組,返回一個新數(shù)組

4. 插入排序

5.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出

復(fù)制代碼

  1. 從第一個元素開始,該元素可以認為已經(jīng)被排序
  2. 取出下一個元素,在已經(jīng)排序的元素序列中掃描
  3. 如果該元素(已排序)大于新元素,將該元素移到下一位置
  4. 重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置
  5. 將新元素插入到下一位置中
  6. 重復(fù)步驟2

5.選擇排序

6.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出

復(fù)制代碼

  1. 在未排序序列中找到最?。ù螅┰?/li>
  2. 并存放到排序序列的起始位置
  3. 然后,再從剩余未排序元素中繼續(xù)尋找最?。ù螅┰?/li>
  4. 然后放到已排序序列的末尾。
  5. 以此類推

6. 原生 javascript 數(shù)組排序

7.png

方法/步驟

1.獲取數(shù)組中最大的元素
8.png
2.把最大值放到數(shù)組最后
  • 定義一個中間變量來交換最大值和最后一個元素的值;
  • 定義一個變量來保存最大值所在的位置;
9.png
3.使用第二重循環(huán)來執(zhí)行第2步:
10.png
4.把第3步封裝在函數(shù)中:
11.png

注意事項:

1.數(shù)字排序為升序排列!
2.這種方法會改變原始數(shù)組!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 介紹: Nmap使用原始IP數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機、主機提供的服務(wù)(應(yīng)用程序名稱和版本)、正在運行的操作系統(tǒng)...
    三豬技術(shù)團隊閱讀 890評論 0 0
  • 504b 0304 1400 0008 0800 4498 963d a6fa9ff3 9f41 1e00 a88...
    BossOx閱讀 12,695評論 0 0
  • 6270 a1da b5e7 b8aa 4d60 60c6 dea2 9fcc66b3 1acd 0596 77b...
    BossOx閱讀 10,321評論 0 0
  • 504b 0304 1400 0008 0800 fa8c 963d 50740baa dffc 0e00 6cd...
    BossOx閱讀 4,080評論 0 0
  • 彩排完,天已黑
    劉凱書法閱讀 4,500評論 1 3

友情鏈接更多精彩內(nèi)容