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ù)制如上代碼 控制臺查看輸出
- 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個位置。
- 對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。
- 針對所有的元素重復(fù)以上的步驟,除了最后一個。
- 持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
3. 快速排序:遞歸思想,兩邊快速的排序,冒泡排序的改進

4.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出
Math.floor(x)方法是向下取整,返回小于或等于x的最接近的整數(shù)。
splice(index,num,item)方法是向數(shù)組中添加項目,或是從數(shù)組中刪除項目,并返回被刪除的項目。
index是整數(shù),被操作項目所在的位置(必須)
num是整數(shù),要刪除的項目的數(shù)量,如果為0,表示不刪除(必須)
-
item是向數(shù)組中添加的新項目,可以是多個(可選)
push()方法是向數(shù)組末尾添加一個或多個新項目并返回新數(shù)組的長度
concat()方法連接兩個或多個數(shù)組,不會改變原有數(shù)組,返回一個新數(shù)組
4. 插入排序

5.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出
- 從第一個元素開始,該元素可以認為已經(jīng)被排序
- 取出下一個元素,在已經(jīng)排序的元素序列中掃描
- 如果該元素(已排序)大于新元素,將該元素移到下一位置
- 重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置
- 將新元素插入到下一位置中
- 重復(fù)步驟2
5.選擇排序

6.png
點擊鏈接可復(fù)制如上代碼 控制臺查看輸出
- 在未排序序列中找到最?。ù螅┰?/li>
- 并存放到排序序列的起始位置
- 然后,再從剩余未排序元素中繼續(xù)尋找最?。ù螅┰?/li>
- 然后放到已排序序列的末尾。
- 以此類推
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ù)組!