特點:從左到右開始,右邊每次都輪結束都出現乙個最大數。即右邊的數依次先排列好。
時間複雜度: 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...