常用排序的js
實現方案,包括原型鏈方法呼叫、簡單選擇排序、氣泡排序、插入排序、快速排序、希爾排序、堆排序、歸併排序。
var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
arr.
sort
((a,b)
=> a-b)
;// arr.__proto__.sort
console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
var n = arr.length;
for(
let i=
0; i++i)
[arr[i]
, arr[minindex]]=
[arr[minindex]
, arr[i]];
}console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(n²) 最好情況 o(n²) 最壞情況 o(n²) 空間複雜度 o(1) 不穩定排序
var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
var n = arr.length;
for(
let i=
0; i++i)}if
(!swapflag)
break;}
console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(n²) 最好情況 o(n) 最壞情況 o(n²) 空間複雜度 o(1) 穩定排序
var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
var n = arr.length;
for(
let i=
1; i++i)
arr[preindex+1]
= current;
}console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(n²) 最好情況 o(n) 最壞情況 o(n²) 空間複雜度 o(1) 穩定排序
function
partition
(arr, start, end)
arr[start]
= boundary;
return start;
}function
quicksort
(arr, start, end)
var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
quicksort
(arr,
0, arr.length-1)
;console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(nlogn) 最好情況 o(nlogn) 最壞情況 o(n²) 空間複雜度 o(logn) 不穩定排序
function
shellsort
(arr)}}
}var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
shellsort
(arr)
;console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(nlogn) 最好情況 o(nlog²n) 最壞情況 o(nlog²n) 空間複雜度 o(1) 不穩定排序
function
adjustheap
(arr, i, n)
else}}
function
heapsort
(arr)
}var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
heapsort
(arr)
;console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(nlogn) 最好情況 o(nlogn) 最壞情況 o(nlogn) 空間複雜度 o(1) 不穩定排序
function
merger
(arr, start, mid, end, auxarr)
while
(start<=mid) auxarr[count++
]= arr[start++];
while
(midright<=end) auxarr[count++
]= arr[midright++];
for(
let i=
0; i++i) arr[i+startstroage]
= auxarr[i]
;return arr;
}function
mergesort
(arr, start, end, auxarr)
return arr;
}var arr =[1
,7,9
,8,3
,2,6
,0,5
,4];
arr =
mergesort
(arr,
0, arr.length-1,
);console.
log(arr)
;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// 平均時間複雜度 o(nlogn) 最好情況 o(nlogn) 最壞情況 o(nlogn) 空間複雜度 o(n) 穩定排序
js實現陣列排序
var array 1,4,8,3,6,12,9,8 function compare val1,val2 array.sort compare document.write array sort 方法按照公升序排列陣列項,會呼叫每個陣列項的tostring 轉型方法,然後比較得到的字串。tostr...
JS陣列排序
function bubblesort array return array vararray1 2,5,1,9 bubblesort array1 1,2,5,9 function usesort array var array1 2,5,1,9 usesort array1 在資料集中,選擇乙個...
js 陣列排序
var array 1,4,8,3,6,12,9,8 function compare val1,val2 array.sort compare document.write array sort 方法按照公升序排列陣列項,會呼叫每個陣列項的tostring 轉型方法,然後比較得到的字串。tostr...