js常用演算法學習筆記

2021-10-03 11:22:34 字數 1103 閱讀 4625

次比較相鄰的兩個數,如果後乙個比前乙個小,換位置

示例:

var arr =[3

,1,4

,6,5

,7,2

];function

bubblesort

(arr)}}

return arr;

}console.

log(

bubblesort

(arr)

);

外層for迴圈控制排序的次數。

內層for迴圈控制比較的次數。

以上是最基本的沒有優化的氣泡排序版本。

採用二分法,取出中間數,陣列每次和中間數比較,小的放到左邊,大的放到右邊

var arr =[3

,1,4

,6,5

,7,2

];function

quicksort

(arr)

let cindex = math.

floor

(arr.length /2)

;let c = arr.

splice

(cindex,1)

[0];

let left =

;let right =

;for

(let i =

0; i < arr.length; i++

)else

}return

quicksort

(left)

.concat

([c]

,quicksort

(right));

} console.

log(

'結果'

,quicksort

(arr)

);

小於"基準"的元素放入左邊的子集,大於基準的元素放入右邊的子集。最後,使用遞迴不斷重複這個過程,就可以得到排序後的陣列。

注意:基準可以不是中間數,任何乙個都可以。取中間值是為了方便理解。

演算法 學習筆記

1.輸入輸出演算法至少有乙個或多個輸出 2.有窮性 3.確定性 4.可行性 1.正確性a.演算法程式沒有語法錯誤 b.演算法程式對於合法的輸入資料能夠產生滿足要求的輸出結果 c.演算法程式對於非法的輸入資料能夠得出滿足規格說明的結果 d.演算法對於精心選擇的,甚至刁難的測試資料都有滿足要求的輸出結果...

演算法學習筆記

複雜度分析 1.只關注迴圈次數最多的一行 2.總複雜度等於量級最大 的複雜度 3.巢狀 的複雜度等於巢狀 內外複雜度的乘積 單鏈表結構和順序儲存結構的優缺點 儲存分配方式 時間效能 空間效能 單鏈表結構 用一組任意的儲存單元存放線性表元素 查詢 o n 插入和刪除 找到某位置的指標後,插入和刪除的時...

演算法學習筆記

影象分割是機器視覺後續處理的基礎,通過分割提取影象中的目標區域,方便後續進一步分析處理。分水嶺分割演算法 傳統的分水嶺演算法,是基於數學形態學的分割方法。其基本思想是,將2d影象視為3d地形 其中,畫素的座標 地形的位置,畫素的灰度 地形的高度 每乙個區域性極小值及其周圍區域稱為集水盆地,而集水盆地...