排序也是我們經常用到的一種演算法,之前我們遇到的有氣泡排序,選擇排序等。
那麼我們就開始主要梳理一下排序演算法,並且重點理解出現頻率比較高的快速排序的方法。
推薦看這個人的部落格,非常的詳細了。
快速排序:
適用場景:
資料量大,快速排序是目前基於比較的排序中被認為是最好的方法,當待排序的關鍵字是隨機分布時,快速排序的平均時間最短;
它到底是怎麼排的啊?
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...