洛谷 P1177 模板 快速排序

2022-06-21 14:24:13 字數 692 閱讀 5474

利用快速排序演算法將讀入的 n 個數從小到大排序後輸出。

快速排序是資訊學競賽的必備演算法之一。對於快速排序不是很了解的同學可以自行上網查詢相關資料,掌握後獨立完成。(c++ 選手請不要試圖使用stl,雖然你可以使用sort一遍過,但是你並沒有掌握快速排序演算法的精髓。)

第 1 行為乙個正整數 n,第 2 行包含 n 個空格隔開的正整數 \(a_i\),為你需要進行排序的數,資料保證了 \(a_i\) 不超過 \(10^9\)。

將給定的 n 個數從小到大輸出,數之間空格隔開,行末換行且無空格。

輸入 #1

5

4 2 4 5 1

輸出 #1
1 2 4 4 5
對於 20% 的資料,有 \(n\leq 10^3\);

對於 100% 的資料,有 \(n\leq 10^5\)。

#include using namespace std;

void quicksort(int a, int l, int r)

if(l>n;

int a[n];

for(i=0;i>a[i];

quicksort(a,0,n-1);

for(i=0;icout

}

洛谷 P1177 模板 快速排序

洛谷 p1177 模板 快速排序 1.翻書,該題很容易解決,但不算掌握。2.憑空編寫,邊界點的取值有些問題,等號去還是不取。3.想了乙個辦法,寫出一組資料進行手動模擬,弄明白了,程式再開始根據模擬進行編制。4.很久沒寫快排了,如果能一次性編寫成功,這次可以說快排掌握了。5.開始動手,6.第一次取a ...

洛谷 P1177 模板 快速排序

這道題用傳統快排 如下所示 的結果就是最後三個點tle void swap int a,int b void quicksort int a,int left,int right quicksort a,left,i 1 quicksort a,j 1,right 因為快排對於一些特殊的情況 例如序...

洛谷 P1177 模板 快速排序

題目所在 題面說是快排的板子題,可將純純快排的板子扔上去之後 t 的一塌糊塗.看來沒這麼簡單。對於快排,我的理解,一趟快排所做的事 從結果上來看 就是 把標準值扔到它最終該待的地方並且使它左邊的值都小於它,右邊的值都大於它。把這個過程扔到遞迴中去做足夠多的的次數,就能夠使一串數字排好順序。我們知道,...