《演算法》第二章 快排非遞迴實現

2021-07-24 22:11:14 字數 584 閱讀 3248

其實就是用棧儲存每乙個待排序子串的首尾元素下標,下一次while迴圈時取出這個範圍,對這段子序列進行partition操作。

#include#includeusing namespace std;

int partition(int *a,int lo,int hi)

/*此時lo == hi*/

a[lo] = pivot;

return lo;

}//非遞迴演算法

void quicksort(int *a,int lo,int hi)

// if(p + 1< hi)

//

st.push(lo);

st.push(hi);

} while(!st.empty())

if(p + 1< hi_t)

}}int main()

; int len = sizeof(a)/sizeof(int);

quicksort(a,0,len - 1);

for(int i = 0;i < len;i++)

cout

快排非遞迴實現

int partition int arr,int low,int high arr low pivot return low void non recursive qsort int arr,int low,int high if high pivot 1 其實就是用棧儲存每乙個待排序子串的首尾元...

第二章 演算法

本章內容了解即可。如果大家對資料結構完全不了解,我建議你先去看一下b站上郝斌老師的課程。演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的優先序列,並且每條指令表示乙個或多個操作。只聽資料結構課程,當然可以,但是聽完後你可能沒有什麼感覺,因為你不知道他是幹嘛的。但是如果配合演算法來講解,你就...

第二章 演算法

一 演算法定義 二 演算法的時間複雜度與空間複雜度 1.定義 演算法是解決待定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。2.演算法的特性 演算法有五個基本特性 輸入 輸出 有窮性 確定性和可行性。演算法在一定條件下,只有一條執行路徑,相同的輸入只能有唯一的輸...