排序演算法學習記錄

2021-10-08 21:23:34 字數 766 閱讀 7292

特點:從左到右開始,右邊每次都輪結束都出現乙個最大數。即右邊的數依次先排列好。

時間複雜度: o(n^2) 空間複雜度:o(1)

//氣泡排序

/** 第一層迴圈,(若上一回遍歷結束,有交換資料操作)繼續挨個遍歷。

每完成一次找到乙個最大數置於後邊。

第二層遍歷,(每次遍歷都比上一回,少遍歷乙個數)判斷大小。

**/void

mpsort

(int

nums)}}

}

特點:從左到右開始(下標為1處開始),陣列的左端先被排序好。依次從右邊取數字,插入排序好的左邊(與左邊排序好的進行比較插入合適的位置)。

時間複雜度: o(n^2) 空間複雜度:o(1)

//插入排序

/**

**/void

crsort

(int

nums)

nums[j+1]

= current;

}}

特點:

時間複雜度:空間複雜度:

//歸併排序

/** **/

特點:

時間複雜度:空間複雜度:

//快速排序

/** **/

特點:

時間複雜度:空間複雜度:

//拓撲排序

/** **/

排序演算法學習記錄

口述思路 內外雙迴圈,內迴圈中當 n n 1 時,進行資料對調,目的就是為了讓n永遠為最小的數,以此類推,我們的排序一般都是從左向右,左邊是最小的,右邊是最大的。口述思路 特點就是運用遞迴,單個迴圈體,預設要將第乙個n設為middle變數,然後迴圈開始後,將大於middle的記錄到right變數中 ...

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

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

演算法學習記錄

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