Problem D C 習題 快速排序

2021-07-30 19:06:14 字數 1107 閱讀 8770



time limit: 1 sec  

memory limit: 128 mb

submit: 470  

solved: 205 [

submit][

status][

web board]

以某個數為標準,把比這個數大的都移到它的後面,比這個數小的都移到它的前面,這樣它後面的任意乙個數都比它前面的任意乙個數大,再將這前後兩組數再分別重複這一過程,最後就會得到有序的數列;

補充:如果從大到小排列可以將比這個數大的都移到它的前面,比這個數小的都移到它的後面.

快速排序從小到大排序演算法描述:

1)設定兩個變數first、last,令first等於一組數的第乙個數的下標,last等於一組數的最後乙個數的下標;

2)以某個陣列元素作為關鍵資料(這裡將這組數的第乙個數作為關鍵資料),賦值給key,即key=a[first];

3)從last開始向前搜尋,即由後開始向前搜尋(last--),找到第乙個小於key的值a[last],將a[last]給a[first];

4)從first開始向後搜尋,即由前開始向後搜尋(first++),找到第乙個大於key的a[first],將a[first]給a[last];

5)重複第3、4步,直到first=last,將key的值給a[first];

6)將first兩邊的兩組數分別再進行排序,重複1、2、3、4、5步;直到每組只剩乙個數排序結束.

現在,我們的題目來了...

輸入一組整數,將這組整數從小到大排列。

**分析:

#include using namespace std;

void quicksort(int a,int low,int high)

int first=low;

int last=high;

int key=a[first];

while(first=key&&first>n;

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

quicksort(a,0,n-1);

for(i=0; i<=n-1; i++)

cout

}

快速排序習題

1.修改快速排序中的pation演算法,使得返回q,t,其中p q t r.下標小於q的都小於主元,大於t的都大於主元,在q t之間的等於主元 pation a,p,r q p 1 t q for int i 0 i2.對區間的模糊排序 我們知道一系列數的大致區間,怎樣對這些區間進行排序使得每個區間...

C 習題 快速排序

題目描述 以某個數為標準,把比這個數大的都移到它的後面,比這個數小的都移到它的前面,這樣它後面的任意乙個數都比它前面的任意乙個數大,再將這前後兩組數再分別重複這一過程,最後就會得到有序的數列 補充 如果從大到小排列可以將比這個數大的都移到它的前面,比這個數小的都移到它的後面.快速排序從小到大排序演算...

YTU 2754 C 習題 快速排序

時間限制 1 sec 記憶體限制 128 mb 提交 92 解決 55 以某個數為標準,把比這個數大的都移到它的後面,比這個數小的都移到它的前面,這樣它後面的任意乙個數都比它前面的任意乙個數大,再將這前後兩組數再分別重複這一過程,最後就會得到有序的數列 補充 如果從大到小排列可以將比這個數大的都移到...