js數組排序方法


這里使用了冒泡排序、選擇排序、插入排序的方式對數組進行排序

 1     let arr = [1,3,2,7,5,4];    //對數據進行從小到大排序
 2     // **冒泡排序**
 3     //     冒泡排序按照一定的遍歷規則(從小到大、從大到小),對數據進行遍歷,每一輪遍歷結束會確定一個最大值或者最小值,在對剩下的數據再次進行重復操作,直到最后剩余一個元素。
 4     //     第一輪遍歷的具體步驟:
 5     //          1、3對比,1小於3不替換位置,結果為[1,3,2,7,5,4],
 6     //          3、2對比,3大於2,2、3替換位置,結果為[1,2,3,7,5,4],
 7     //          3、7對比,3小於7不替換,結果為[1,2,3,7,5,4],
 8     //          7、4對比,7<4替換,結果為[1,2,3,5,7,4],
 9     //          7、5對比,7大於5替換,結果為[1,2,3,5,4,7]
10     //      第一輪走完,最終確定了一個最大值7,接下來遍歷的數據為[1,2,3,5,4],重復進行
11     // for(let i = 0;i < arr.length;i++){
12     //     for(let j = 0;j <arr.length-i;j++){
13     //         if(arr[j]>arr[j+1]){
14     //             let t = arr[j];
15     //             arr[j] = arr[j+1];
16     //             arr[j+1] = t;
17     //         }
18     //     }
19     // }
20     // console.log(arr);
21     // **選擇排序**
22     //      選擇排序每次都會獲得最大或者最小元素的下標,每次遍歷結束替換下標元素的位置,獲得一個最值,他不需要像冒泡排序一樣,每一次的遍歷需要進行多次交換
23     //      第一輪遍歷具體步驟:
24     //          下標為0開始,設置為最大值下標,用arr[0]和其他的進行對比,1和3對比,3大,取3的下標作為最大值下標
25     //          下標為1,3和2對比,3大,下標不變
26     //          下標為1,3和7對比,7大,取7的下標作為最大值下標
27     //          下標為3,7和5對比,7大,下標不變
28     //          下標為3,7和4對比,7大,下標不變
29     //          第一輪遍歷走完,最終確定最大值下標為3,取最大值下標和數組最后一個元素替換,變為[1,3,2,4,5,7],接下來的遍歷的數據為[1,3,2,4,5],去掉最后一個已經確定的元素,繼續如下操作
30     // for(let i = 0;i < arr.length;i++){
31     //     let maxIndex = 0;    //存儲最大值下標
32     //     for(let j = 0;j < arr.length-i;j++){
33     //         if(arr[maxIndex] < arr[j]){
34     //             maxIndex = j;
35     //         }
36     //     }
37     //     let t = arr[maxIndex];
38     //     console.log(t);
39     //     arr[maxIndex] = arr[arr.length-i-1];
40     //     arr[arr.length-i-1] = t;
41     // }
42     // console.log(arr);
43     // **插入排序**
44     //      插入排序主要是將需要排序的數組分為兩部分,取第一個元素作為已排序數組,其余元素作為未排序數組,一次取未排序數組的元素和已排序數組中的元素進行對比插入,最終未排序數組變為空值,已排序數組就是排序結果
45     // for (var i = 0, len = arr.length; i < len; i++) {
46     //     var item = arr[i];     // 儲存當前位置的值
47     //     for (var j = i - 1; j > -1 && arr[j] > item; j--){ // 和前面已經有序的部分,比較,交換
48     //         arr[j + 1] = arr[j];
49     //     }   
50     //     arr[j+1] = item;
51     // }
52     // console.log(arr);

之后還會繼續補充添加。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM