常見排序演算法 JS實現

2021-10-08 08:54:12 字數 2329 閱讀 1181

//氣泡排序

bubblesort()}}}

每輪排序選出乙個最小或最大的元素再乙個個插入陣列

//選擇排序

selectionsort()

}this

.swap

(min, i)

}}

從未排序元素中挑出乙個元素挨個跟區域性有序的元素進行比較,找到對應位置插入即可

//插入排序

insertsort()

this

.array[j]

= temp}}

希爾排序基於插入排序,根據元素長度算出增量,以增量分組,對分組進行插入排序,再減少增量繼續以上操作直到增量小於0(計算增量使用原稿的方式n/2)

快速排序是氣泡排序的公升級版,使用遞迴實現演算法

//快速排序

quicksort()

quick

(left, right)

else

if(right - left ==1)

return

}//拿到分隔點

let pivot =

this

.getpivot

(left, right)

console.

log(

this

.array)

let l = left

let r = right -

1//遍歷元素找到pivot對應正確位置,使pivot左邊的元素都小於pivot,右邊相反

while

(true

)while

(this

.array[

--r]

> pivot)

if(l < r)

else

}//將pivot對應正確位置

this

.swap

(l, right -1)

//分而治之

this

.quick

(left, l -1)

this

.quick

(l , right)

}//拿到中位數,分隔點

getpivot

(left, right)if(

this

.array[center]

>

this

.array[right])if

(this

.array[left]

>

this

.array[right]

)//將中位數放到倒數第二的位置

this

.swap

(center, right -1)

//返回中位數

return

this

.array[right -1]

}

js實現常見排序演算法

電腦配置 cpu amd x4 640 記憶體 巨集想 ddr3 1600mhz 8g 主機板 華擎 980de3 u3s3 r2.0 瀏覽器 chrome 79.0.3945.88 正式版本 64 位 時間測試函式 function testruntime fn 1.氣泡排序 2.選擇排序 3.插...

js實現常見的排序演算法

插入排序的實現 function insertsort2 arr arr j 1 temp 插入排序改進,判斷j 0 function insertsort2 arr arr j 1 temp 希爾排序 分割策略 縮小增量排序 折半插入 function shellsort arr arr k ga...

常見的排序演算法 JS實現

一 氣泡排序 1 function bubblesort arr 10 11 i 12 13return arr 14 二 快速排序 1 function quicksort array 6var key arr right 7var i left,j right 8while i 12 arr j...