排序演算法學習記錄

2021-10-07 19:25:34 字數 394 閱讀 2802

口述思路:內外雙迴圈,內迴圈中當 n > n+1 時,進行資料對調,目的就是為了讓n永遠為最小的數,以此類推,我們的排序一般都是從左向右,左邊是最小的,右邊是最大的。

口述思路:特點就是運用遞迴,單個迴圈體,預設要將第乙個n設為middle變數,然後迴圈開始後,將大於middle的記錄到right變數中(陣列追加),小於的放到left變數中(陣列追加),left 和 right 分別遞迴執行本函式,最後合併陣列,即 left + middle + right 合在一起組成新的陣列。

口述思路:跟冒泡相近,但區別在於,並不會直接對調值;還是內外雙迴圈,在內迴圈裡,當n>n+1時,將n+1對應的key記錄下來,然後將n換成記錄下來的key對應的值繼續後面的迴圈,重複前面的條件,目的是為了找到本輪迴圈裡最小的值,最後將最小的值替換到n的位置。

排序演算法學習記錄

特點 從左到右開始,右邊每次都輪結束都出現乙個最大數。即右邊的數依次先排列好。時間複雜度 o n 2 空間複雜度 o 1 氣泡排序 第一層迴圈,若上一回遍歷結束,有交換資料操作 繼續挨個遍歷。每完成一次找到乙個最大數置於後邊。第二層遍歷,每次遍歷都比上一回,少遍歷乙個數 判斷大小。void mpso...

演算法學習記錄 排序 希爾排序

希爾排序 直接插入排序在在本身數量比較少的時候情況下效率很高,如果待排數的數量很多,其效率不是很理想。回想一下直接插入排序過程,排序過程中,我們可以設定一條線,左邊是排好序的,右邊則是乙個乙個等待排序,如果最小的那個值在最右邊,那麼排這個最小值的時候,需要將所有元素向右邊移動一位。是否能夠減少這樣的...

演算法學習記錄

排序演算法複雜度 層序遍歷 雙端佇列 演算法流程 特例處理 當樹的根節點為空,則直接返回空列表 初始化 列印結果空列表 res 包含根節點的雙端佇列 queue bfs 迴圈 當 queue 為空時跳出 新建列表 temp 用於臨時儲存當前層列印結果 當前層列印迴圈 迴圈次數為當前層節點數 即 qu...