Js實現陣列排序

2021-10-05 23:29:16 字數 3314 閱讀 8871

常用排序的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...