//氣泡排序
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...