排序演算法JS實現

2021-10-12 08:39:28 字數 2153 閱讀 9555

js描述

let arr =[11

,2,3

,5,4

,10,6

,9,7

,8,1

]// 待排序

let sequence =

true

// 確定冒的是大泡還是小泡

function

bubblesort

(arr,sequence=

true

)else

}else}}

}}}console.

log(

'original arr'

,arr)

// => original arr [11, 2, 3, 5, 4,10, 6, 9, 7, 8,1]

bubblesort

(arr,

false

)// 傳入false,我們讓它從大到小排序

console.

log(

'afterbubble'

,arr)

// => afterbubble [11, 10, 9, 8, 7,6, 5, 4, 3, 2,1]

js描述

// 同學們的身高

let height=

[179

,166

,170

,188

,175

,174

,176

,155

,160

,153

,169];

function

fastsort

(arr,start,end)

if(start < end)

// 然後他左邊的跟他比

while

(start < end && arr[start]

<= priot)

if(start < end)

}// 一波比完

arr[start]

= priot

// 兩邊的同學採取同樣的策略

fastsort

(arr,i,start-1)

fastsort

(arr,start+

1,j)}}

console.

log(

'執行快排前同學們的身高排序'

,arr)

fastsort

(arr,

0,arr.length-1)

console.

log(

"執行快排後同學們的身高排序"

,arr)

js描述

/**

* 作用: 調整堆

* @param arr 要調整的陣列

* @param i 從哪個元素開始調整

* @param length 涉及到的元素的長度

* @param flag 調整為大頂堆還是小頂堆

*/function

ajustheap

(arr,i,length,flag)

}else}}

if(flag)

else

}else

else}}

}/**

* 作用: 初始化堆

* @param arr 需要調整的陣列

* @param flag flag為true,表示大頂堆,false為小頂堆

*/function

initheap

(arr,flag)

// 調整堆

for(

let i = arrlength -

1; i >=

0; i--)}

let arr =

[100,12

,44,55

,11,33

,22,13

,5]console.

log(

'堆排序前'

,arr)

initheap

(arr,

false

)console.

log(

'堆排序後'

,arr)

排序演算法 JS實現

原文引用自這裡,這裡只是我自己的學習的補充以及筆記 時間複雜度,o n2 var arr 5,6,3,1,8,7,2,4 function insertsort arr else return arr console.log insertsort arr 時間複雜度,o n2 var arr 5,1...

JS實現排序演算法

目錄 一 氣泡排序 方法名 sortarr 功能介紹 對陣列進行排序 冒泡演算法 arguments arr 必輸項 需要排序的陣列 action 非必輸項 up 公升序,down 降序 預設 let sortarr function arr,action 空陣列或者陣列1個元素,不需要排序直接跳出...

排序演算法(js實現)

氣泡排序 兩兩比較,遍歷一趟會挑出最大的值放在最後。function bubblesort arr return arr 選擇排序 從頭至尾掃瞄序列,每次找出最小的乙個元素,和第乙個元素交換,接著從剩下的元素中繼續這種選擇和交換方式,最終得到乙個有序序列。function selectsort ar...