資料結構實驗之排序二 交換排序

2021-09-05 08:52:21 字數 1066 閱讀 9165

problem description

氣泡排序和快速排序都是基於"交換"進行的排序方法,你的任務是對題目給定的n個(長整型範圍內的)整數從小到大排序,輸出用冒泡和快排對這n個數排序分別需要進行的資料交換次數。

input

連續多組輸入資料,每組資料第一行給出正整數n(n ≤ 10^5),隨後給出n個整數,數字間以空格分隔。

output

輸出資料佔一行,代表氣泡排序和快速排序進行排序分別需要的交換次數,數字間以1個空格分隔,行末不得有多餘空格。

sample input

849 38 65 97 76 13 27 49

sample output

15 9

hint

注意:資料相等時不做交換

source

xamac**:

#include

#include

using namespace std;

intqpsort

(int a,

int n)}}

return sum;

}int num;

///關鍵是沒有理解題目的意思。。

///題目中說的是快速排序需要交換的次數,而不是趟數!!

///快排有點特殊,就是賦值的過程實際就是交換的過程。

void

qsort

(int a,

int left,

int right)

while

(i<=key)

i++;if

(i!=j)

///同上

} a[j]

= key;

qsort

(a,left,j-1)

;qsort

(a,j+

1,right);}

intmain()

int s =

qpsort

(a,n)

;qsort

(b,0

,n-1);

cout<" "<}return0;

}

資料結構實驗之排序二 交換排序

time limit 1000ms memory limit 65536k 有疑問?點這裡 氣泡排序和快速排序都是基於 交換 進行的排序方法,你的任務是對題目給定的n個 長整型範圍內的 整數從小到大排序,輸出用冒泡和快排對這n個數排序分別需要進行的資料交換次數。連續多組輸入資料,每組資料第一行給出正...

資料結構實驗之排序二 交換排序

time limit 1000ms memory limit 65536k 氣泡排序和快速排序都是基於 交換 進行的排序方法,你的任務是對題目給定的n個 長整型範圍內的 整數從小到大排序,輸出用冒泡和快排對這n個數排序分別需要進行的資料交換次數。連續多組輸入資料,每組資料第一行給出正整數n n 10...

資料結構實驗之排序二 交換排序

time limit 1000ms memory limit 65536k 有疑問?點這裡 氣泡排序和快速排序都是基於 交換 進行的排序方法,你的任務是對題目給定的n個 長整型範圍內的 整數從小到大排序,輸出用冒泡和快排對這n個數排序分別需要進行的資料交換次數。連續多組輸入資料,每組資料第一行給出正...