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

2021-07-25 03:34:19 字數 1043 閱讀 5128



time limit: 1000ms

memory limit: 65536kb

submit

statistic

problem description

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

input

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

output

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

example input

8

49 38 65 97 76 13 27 49

example output

15 9

hint

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

#include

int a[1000010],b[1000010],sum,sum1;

void sort(int a,int left,int right)  //快排

if(a[i] != a[j])   //資料不相等交換次數加一

sum++;

a[i] = a[j];

while(i < j && key >= a[i])

i++;

if(a[i] != a[j])

sum++;

a[j] = a[i];

}a[i] = key;

sort(a,left,i-1);

sort(a,i+1,right);}}

void mapao(int a,int n)}}

}int main()

sort(a,0,t-1);

mapao(b,t);

printf("%d %d\n",sum1,sum);

}return 0;

}

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

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個數排序分別需要進行的資料交換次數。連續多組輸入資料,每組資料第一行給出正...