資料結構 考研 快速排序

2021-10-09 10:55:12 字數 1114 閱讀 9752

快速排序有三種寫法,平均複雜度幾乎相同。

我們這裡給出最常見的那種,把第乙個元素拎出來,然後找到它該去的地方再塞進去。

快速排序和氣泡排序都屬於交換排序,都屬於不穩定排序。

一趟快速排序定乙個位置,並且把區間分為兩部分。

int partition(int* arr,int i,int j) //小於基準值左移

//正向遍歷

while(i < j && arr[i] <= temp) i ++; //小於基準值繼續遍歷

if(i < j) //大於基準值右移

} arr[i] = temp; //基準值就位

return i; //返回基準位置,即排序區間劃分點

}

快速排序演算法:

void quicksort(int* arr,int left,int right)

}

**如下:

#includeusing namespace std;

int partition(int* arr,int i,int j) //小於基準值左移

//正向遍歷

while(i < j && arr[i] <= temp) i ++; //小於基準值繼續遍歷

if(i < j) //大於基準值右移

} arr[i] = temp; //基準值就位

return i; //返回基準位置,即排序區間劃分點

} void quicksort(int* arr,int left,int right)

}int main();

for(int i = 0;i < 10;i ++) cout執行結果:

考研資料結構 排序

人生哪有最好,把每乙個當下做到最好,就很不錯了呀。以下以考試主要考查的重點內容為主體,講述過程以方便大家記憶為上,並不面面俱到。首先得知道排序分內部排序和外部排序。內部排序 排序整個過程中資料在記憶體中。外部排序 排序整個過程中資料會有出現在內 外存之間調動的情況。考研主要考內部排序。內部排序主要分...

考研 資料結構 排序演算法

include include using namespace std 排序演算法 時間複雜度 最好,最壞,平均 插入排序 void insert sort int arr,int n arr j 1 temp 折半插入排序 void insert02 sort int arr,int n else...

資料結構 考研 拓撲排序

獲得乙個圖的拓撲排序可以有深搜和廣搜兩種途徑。深搜是逆向思維,遍歷到遞迴最深處,層層返回的時候把結點壓棧,得到的是乙個逆序拓撲序列。廣搜是正向思維,從度為 0 的結點入手,每次將度為 0 的結點入隊,直到全部遍歷。深搜 int visited 5 visited有三種狀態,未搜尋 0 搜尋中 1 搜...