溫故知新 排序演算法筆記

2022-05-04 12:33:09 字數 516 閱讀 5948

不斷選擇剩餘元素的最小者

$o(n^2)$

將後續元素插入到已經有序的元素適當的位置

$o(n^2)$

每次對n有序子陣列進行插入排序,然後減少n,重複對有序子陣列進行插入排序,直到n為1

對於中等數量級,通常只慢高階排序一點,實現簡單,適合嵌入式開發

分治策略:先排序左半部分,再排序右半部分,最後合併,合併需要使用額外n控制項的中間陣列

$o(nlogn)$

分治策略:將陣列分為三部分,比元素v小的元素,v元素,比v大的元素,可以理解這是一種入座演算法,通過不斷讓元素入座(同時保證左子樹都小於右子樹),實現整體陣列有序。

注意需要事先shuffle,不然最多需要 $n^2/2$ 比較

優化:熵最優(大量重複元素情況),小陣列使用插入排序,三取樣(切分數盡量為中位數)

適用於流式輸入,插入通過上浮,刪除通過下沉來實現有序

堆排序,先下沉後上浮

溫故知新 ROWTYPE

rowtype 相當於資料庫表裡的一行資料記錄的變數型別。declare 定義乙個emp表裡的一行記錄的資料型別的變數 v emp emp rowtype begin 查詢的emp表裡的資料列必須與v emp的列順序以及個數保持一致 select empno,ename,job,mgr,hireda...

vue 溫故知新

v cloak指令 解決變數閃爍問題 v if isshow 是插入或刪除節點 v show isshow 是隱藏或顯示節點 v bind data m msg 或 data m msg 繫結屬性 v bind key v.id 繫結乙個資料唯一值,用於虛擬dom演算法,優化渲染效率 v on cl...

溫故知新系列

我從事windows phone開發一年多來,終日忙於開發應用,每每有所收穫也沒有時間思考總結。最近實習即將結束,同時也看清了真實的生活,痛定思痛,決定好好整理自己所學所得,同時也靜下心來好好學習一下一直欠缺的知識。溫故而知新,可以為師矣。此番總結,不求為師,但求能看清自己,共勉共勉。此溫故知新系列...