javascript常見四大排序

2021-08-14 22:10:34 字數 2645 閱讀 8750

氣泡排序

var arr = [23, 34, 11, 22, 19, 18];

氣泡排序的思路分析:

第1輪 第1步:[23, 34, 11, 22, 19, 18]

第1輪 第2步:[23, 11, 34, 22, 19, 18]

第1輪 第3步:[23, 11, 22, 34, 19, 18]

第1輪 第4步:[23, 11, 22, 19, 34, 18]

第1輪 第5步:[23, 11, 22, 19, 18, 34]

第2輪 第1步:[11, 23, 22, 19, 18, 34]

第2輪 第2步:[11, 22, 23, 19, 18, 34]

第2輪 第3步:[11, 22, 19, 23, 18, 34]

第2輪 第4步:[11, 22, 19, 18, 23, 34]

第3輪 第1步:[11, 22, 19, 18, 23, 34]

第3輪 第2步:[11, 19, 22, 18, 23, 34]

第3輪 第3步:[11, 19, 18, 22, 23, 34]

第4輪 第1步:[11, 19, 18, 22, 23, 34]

第4輪 第2步:[11, 18, 19, 22, 23, 34]

第5輪 第1步:[11, 18, 19, 22, 23, 34]

外層的for迴圈確定輪數

for(var i = 1; i < arr.length; i++) }}

選擇排序

選擇排序的思路分析:

第1輪 第1步:var imink = 0;

第1輪 第2步:23 和 34比較,什麼也不做

第1輪 第3步:23 和 11比較,imink = 2

第1輪 第4步:11 和 22比較,什麼也不做

第1輪 第5步:11 和 19比較,什麼也不做

第1輪 第6步:11 和 18比較,什麼也不做

第1輪 第7步:下標0和下標2進行位置交換 [11, 34, 23, 22, 19, 18]

第2輪 第1步:var imink = 1;

第2輪 第2步:34 和 23比較,imink = 2

第2輪 第3步:23 和 22比較,imink = 3

第2輪 第4步:22 和 19比較,imink = 4

第2輪 第5步:19 和 18比較,imink = 5

第2輪 第6步:下標1和下標5進行位置交換 [11, 18, 23, 22, 19, 34]

// 外層for迴圈確定輪數

for(var i = 0; i < arr.length - 1; i++)

}// 交換資料

if(imink !== i)

}插入排序

插入排序的思路分析:

第1輪 第1步:[23, 34, 11, 22, 19, 18]

第2輪 第1步:[23, 11, 34, 22, 19, 18]

第2輪 第2步:[11, 23, 34, 22, 19, 18]

第3輪 第1步:[11, 23, 22, 34, 19, 18]

第3輪 第2步:[11, 22, 23, 34, 19, 18]

第3輪 第3步:[11, 22, 23, 34, 19, 18]

第4輪 第1步:[11, 22, 23, 19, 34, 18]

第4輪 第2步:[11, 22, 19, 23, 34, 18]

第4輪 第3步:[11, 19, 22, 23, 34, 18]

第4輪 第4步:[11, 19, 22, 23, 34, 18]

第5輪 第1步:[11, 19, 22, 23, 18, 34]

第5輪 第2步:[11, 19, 22, 18, 23, 34]

第5輪 第3步:[11, 19, 18, 22, 23, 34]

第5輪 第4步:[11, 18, 19, 22, 23, 34]

第5輪 第5步:[11, 18, 19, 22, 23, 34]

// 外層迴圈確定輪數

for(var i = 1; i < arr.length; i++) else }}

快速排序

快速排序的思路分析:

第一步:base = 23 , arr = [35, 34, 11, 22, 19, 18]

第二步:left = , right =

第三步:[11, 22, 19, 18] 23 [35, 34]

第四步: 11 [22, 19, 18] 23 [34] 35

第五步: 11 [19, 18] 22 23 [34] 35

第六步:[11, 18, 19, 22, 23, 34, 35]

var arr = [23, 35, 34, 11, 22, 19, 18, 18];

function quicksort(arr)

var ibase = arr.shift();

var left = , right = ;

for(var i = 0; i < arr.length; i++) else

}return quicksort(left).concat(ibase, quicksort(right));

}var newarr = quicksort(arr);

console.log(newarr);

四大排序函式

row number over partition by clause order by filed asc desc 連續的從1開始到n的排序號 sql view plain copy rank over partition by clause order by filed asc desc 不連...

SQL四大排序函式

sql四大排序函式 1 row number 函式作用就是將select查詢到的資料進行排序,每一條資料加乙個序號 select row number over order by score desc as rank from scores select from select row number...

js 常用的四大排序

在一排數中,從前往後對相鄰的兩個輸依次比較和調整,讓較大的數往下沉,較小的數往前冒。第乙個和第二個比較,如果後面的大於前面的則換第二個和第三個比較。for var i 1 i arr.length i 在一排數中,第乙個和第二個比較,若後面的比前面小則交換下標,用最小的和後面的比較,若後面的大於前面...