30 排序 快速排序

2021-10-03 05:27:08 字數 814 閱讀 4418

排序也是我們經常用到的一種演算法,之前我們遇到的有氣泡排序,選擇排序等。

那麼我們就開始主要梳理一下排序演算法,並且重點理解出現頻率比較高的快速排序的方法。

推薦看這個人的部落格,非常的詳細了。

快速排序:

適用場景:

資料量大,快速排序是目前基於比較的排序中被認為是最好的方法,當待排序的關鍵字是隨機分布時,快速排序的平均時間最短;

它到底是怎麼排的啊?

t = partion(data, low, high); //將乙個大問題差分成幾個小問題,先找到中軸

quick_sort(data, low, t-1);//遞迴左半部分

quick_sort(data, t+1, high);//遞迴右半部分

return 0;

}//核心操作,找到中軸位置

int partion(int *data, int low, int high)

data[low] = data[high];

while (low < high && temp >= data[low])

data[high] = data[low];

} data[low] = temp;

return low;

}

05 排序 快速排序

原理 整個過程其實只需三步 1.在一列陣列中,選擇其中乙個資料作為 基準 2.所有小於 基準 的資料,都移到 基準 的左邊,所有大於 基準 的資料,都移到 基準 的右邊。3.對於 基準 左邊和右邊的兩個子集,不斷重複第一步和第二步。直到所有的資料子集只剩下乙個資料為止。用例 現有一組資料如下 8 2...

2 排序演算法 快速排序

問題描述 利用快速排序演算法對下列例項排序,在演算法執行過程中,寫出陣列 a第一次排序後被分割的過程。a 65,70,75,80,85,55,50,2 解題思想 在快速排序中,記錄的比較和交換是從兩端向中間進行的,關鍵字較大的記錄一次就能交換到後面的單元,總的比較和移動次數較少。對於輸入的陣列a p...

四 排序演算法 快速排序

快速排序的思想 選擇陣列中的乙個數作為中軸線,然後以這個中軸線為中心,大於中軸線的資料放到右邊,小於中軸線的資料放到左邊,然後每次比較完後再變中軸線的位置,不斷比較下去 include using namespace std template void quick sort t arry,int l...