数据结构实验之排序二:交换排序

数据结构实验之排序二:交换排序,第1张

概述本文章向大家介绍数据结构实验之排序二:交换排序,主要包括数据结构实验之排序二:交换排序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

数据结构实验之排序二:交换排序

Time limit: 1000 ms Memory limit: 65536 KiB

submit Statistic

Problem Description

冒泡排序和快速排序都是基于"交换"进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。

input

连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。

Output

输出数据占一行,代表冒泡排序和快速排序进行排序分别需要的交换次数,数字间以1个空格分隔,行末不得有多余空格。

Sample input

8

49 38 65 97 76 13 27 49

Sample Output

15 9

#include

using namespace std;

int a[100000],b[100000];

int sum,sum1;

voID bsort(int a[],int n)

{

int i,j,t;

for(i=0; i

{

for(j=0; j

{

if(a[j]>a[j+1])

{

t = a[j];

a[j] = a[j+1];

a[j+1] = t;

sum++;

}

}

}

}

voID qsort(int a[],int l,int r)

{

int key = a[l];

int i = l,j = r;

while(i < j)

{

while(i=key)

j--;

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

{

a[i] = a[j];

sum1++;

}

while(i

i++;

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

{

a[j] = a[i];

sum1++;

}

}

a[i] = key;

if(l

{

qsort(a,l,i-1);

qsort(a,i+1,r);

}

}

int main()

{

int i,n;

while(cin>>n)

{

for(i=0; i

{

cin>>a[i];

b[i] = a[i];

}

sum = sum1 = 0;

qsort(a,n-1);

bsort(b,n);

cout<

}

return 0;

}

总结

以上是内存溢出为你收集整理的数据结构实验之排序二:交换排序全部内容,希望文章能够帮你解决数据结构实验之排序二:交换排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存