1003 快速排序

2021-10-16 13:35:51 字數 823 閱讀 4481

問題描述

給定乙個數列,用歸併排序演算法把它排成公升序

輸入格式

第一行是乙個整數n(n不大於10000),表示要排序的數的個數;

下面一行是用空格隔開的n個整數。

輸出格式

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

樣例輸入

53 2 1 4 5

樣例輸出12

345思路:

寫出快排的核心**,以中間值為關鍵字,兩層迴圈巢狀,從左到右找大值,從右到左找小值,找到後二者直接交換,不斷迴圈

具體**:

# include

# define n 1000

//快排的核心**

void

quick_sort

(int

*a,int n)

quick_sort

( a, i)

;quick_sort

( a + i, n - i);}

intmain()

printf

("排序結果為:\n");

quick_sort

(b,a)

;for

(i =

0; i < a; i++

)printf

("%d "

, b[i]);

return0;

}

NOJ 1003 快速排序

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

演算法練習 NOJ 1003 快速排序

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述給定乙個數列,用快速排序演算法把它排成公升序。輸入第一行是乙個整數n,表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出輸出排序後的數列,每個數字佔一行。輸入樣例 5 3 2 1 4 5 輸出樣例 1 2 3 4 5 快...

遞迴 快速排序 快速排序

問題描述 用遞迴來實現快速排序 quick sort 演算法。快速排序演算法的基本思路是 假設要對乙個陣列a進行排序,且a 0 x。首先對陣列中的元素進行調整,使x放在正確的位置上。同時,所有比x小的數都位於它的左邊,所有比x大的數都位於它的右邊。然後對於左 右兩段區域,遞迴地呼叫快速排序演算法來進...