<a1, a2, ..., an>
<a1', a2', ..., an'>
,知足a1' <= a2' <= ... <= an'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function bubbleSort(iArr) {
// 交換函數
function swap(arr, i, j) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
var n = iArr.length;
// 從左邊開始
for (var i = 0; i < n; i++) {
// 每次冒泡完畢,右側新固定一個較大值
for (var j = 1; j < n - i ; j++) {
// 比較,交換大的於右側
if (iArr[j - 1] > iArr[j]) {
swap(iArr, j -
1, j);
}
else {
continue;
}
}
}
return iArr;
}
|
1
2
3
4
5
6
7
8
|
insertionSort([
5, 2, 4, 6, 1, 3]);
// 輸出[1, 2, 3, 4, 5, 6]
insertionSort([
2, 1, 3, 1, 5]);
// 輸出[1, 1, 2, 3, 5]
insertionSort([
5, 2, 12, 2, 134, 1, 3, 34, 4, 6, 1, 3, 4]);
// 輸出[1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 12, 34, 134]
|