查詢和排序演算法的js實現

2021-10-04 16:38:42 字數 1165 閱讀 9787

學習演算法時,將演算法手寫實現,加深記憶。

二分查詢的演算法複雜度是o(l

ogn)

\omicron(log n)

o(logn

)

function dividal(start, end)  

if(num > arr[mid]) else if(num < arr[mid])

}

每次選擇最大(小)的放入新陣列,演算法複雜度為o(n

2)

\omicron(n^2)

o(n2

)

function order(arr) 

var big = arr[0]

var index = 0

for(var i = 0; ibig)

}orderarr.push(big)

arr.splice(index, 1)

return findbigest(arr)

} }

選擇乙個元素作為基準,比該元素大的都放左邊,比該元素小的都放右邊。基準條件為左(或右)邊的陣列長度小於2。用遞迴思想實現該演算法。演算法複雜度為

o (n

logn

)\omicron(n logn)

o(nlog

n)

function quicksort(arr) else 

})return quicksort(leftarr).concat(criterion, quicksort(rightarr))

}

先拆分,一直拆分到只有乙個數。拆分完成後,開始遞迴合併。它的時間複雜度無論是平均,最好,最壞都是nlo

gn

n logn

nlog

n

function divide(p, r) 

function merge(a, p, q, r) else }}

function merge_sort(a, p = 0, r)

const q = divide(p, r);

merge_sort(a, p, q);

merge_sort(a, q, r);

merge(a, p, q, r);

return a;

}

排序演算法的JS實現

排序演算法是基礎演算法,雖然關鍵在於演算法的思想而不是語言,但還是決定借助演算法視覺化工具結合自己常用的語言實現一下 1.氣泡排序 基本思路 依次比較兩兩相鄰的兩個數,前面數比後面數小,不變。前面數比後面數大,交換順序。一輪下來,最後的乙個數是最大的數。外迴圈每增加一次,內迴圈減少一次。圖形展示 f...

排序演算法 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個元素,不需要排序直接跳出...