演算法練習 NOJ 1003 快速排序

2021-06-29 16:17:09 字數 816 閱讀 6246

時限:1000ms 記憶體限制:10000k 總時限:3000ms

描述給定乙個數列,用快速排序演算法把它排成公升序。

輸入第一行是乙個整數n,表示要排序的數的個數;下面一行是用空格隔開的n個整數。

輸出輸出排序後的數列,每個數字佔一行。

輸入樣例

5 3 2 1 4 5

輸出樣例

1 2

3 4

5

// 快速排序.cpp : 定義控制台應用程式的入口點。

#include

#include

using

namespace

std;

//交換a與b的值

void swap(int &a,int &b)

//partition實現方法2,演算法導論實現方法

int partition(int * a,int low,int high)

//在p位置和其後的都是小於等於pivotkey的元素}}

p+=1;

swap(a[p],a[high]);

return p;

}void qsort(int *a,int start,int end)

}//遞迴形式的快速排序

void quicksort(int *a,int len)

int main()

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

quicksort(a,n);

for(i=0;iprintf("%d\n",a[i]);

return

0;}

NOJ 1003 快速排序

給定乙個數列,用快速排序演算法把它排成公升序。第一行是乙個整數n n不大於10000 表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出排序後的數列,每個數字佔一行。5 3 2 1 4 5 123 45 include using namespace std void quicksort i...

1003 快速排序

問題描述 給定乙個數列,用歸併排序演算法把它排成公升序 輸入格式 第一行是乙個整數n n不大於10000 表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出格式 輸出排序後的數列,每個數字佔一行。樣例輸入 53 2 1 4 5 樣例輸出12 345思路 寫出快排的核心 以中間值為關鍵字,兩層...

C 排序演算法練習 快速排序

在所有的技藝中,武功是最強調內功的,比如同樣都學了辟邪劍譜,為什麼岳不群要比林平之厲害?武功的招式固然重要,但沒有深厚的內功,威力會大打折扣.那麼,內功是怎麼練出來的呢?冬練三九,夏練三伏,古人早有定論.而這些道理用在程式開發上也一樣適用.include using namespace std 演算...