資料結構中各種排序演算法的js實現

2021-10-22 11:38:10 字數 2231 閱讀 8557

複習資料結構中的各個排序演算法,主要為了自己檢視~

快排用了分治的思想

時間複雜度:最優(nlogn)最差(n**2)

空間複雜度:logn

<

!doctype html>

"en"

>

"utf-8"

>

"x-ua-compatible" content=

"ie=edge"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

<

/head>

let dat=[4

,1,5

,7,2

,0,3

,7];

function

quicksort

(data)

//此處要將基準數從原陣列移除,避免上面的data.length判斷陷入死迴圈

let basedata=data.

splice(0

,1)[0];

let leftdata=

,rightdata=

;//注意此處的data.length和上面不同,移除了基準數,比 上面小1

for(

let i=

0;i)else

} leftdata=

quicksort

(leftdata)

; rightdata=

quicksort

(rightdata)

;// return leftdata.concat(basedata,rightdata);

return

[...leftdata, basedata,

...rightdata];}

var sorteddata=

quicksort

(dat)

;console.

log(sorteddata)

;<

/script>

<

/body>

<

/html>

function

bubblesort

(arr)}}

return arr

}var a=[9

,3,5

,2,8

,4,1

,0,6

] console.

log(

bubblesort

(a))

;<

/script>

function

******selectsort

(arr)}if

(min!==i)

}return arr

}var a=[9

,3,5

,2,8

,4,1

,0,6

] console.

log(

******selectsort

(a))

;<

/script>

function

straightinsertionsort

(arr)

arr[j+1]

=e }

return arr

}var a=[9

,3,5

,2,8

,4,1

,0,6

] console.

log(

straightinsertionsort

(a))

<

/script>

function

shell

(arr)

arr[j+gap]

=e }

}return arr

}var a=[9

,3,5

,2,8

,4,1

,0,6

] console.

log(

shell

(a))

;<

/script>

資料結構實訓 各種排序

任務 用程式實現插入法排序 起泡法改進演算法排序 利用插入排序和冒泡法的改進演算法,將使用者隨機輸入的一列數按遞增的順序排好。輸入的資料形式為任何乙個正整數,大小不限。輸出的形式 數字大小逐個遞增的數列。include using namespace std void insertsort int ...

資料結構 各種排序演算法比較

一,各種排序演算法比較 各種排序演算法比較 二,相關概念 1 穩定排序和非穩定排序 簡單地說就是所有相等的數經過某種排序方法後,仍能保持它們在排序之前的相對次序,我們就說這種排序方法是穩定的。反之,就是非穩定的。比如 一組數排序前是a1,a2,a3,a4,a5,其中a2 a4,經過某種排序後為a1,...

資料結構中各種內部排序演算法的比較

20101002 1 快速排序 quicksort 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。1 如果不多於1個資料,直接返回。2 一般選擇序列最左邊的值作為支點資料。3 將序列分成2部分,一部分都大於支點資料,另外一部分...