数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和
来源:互联网 发布:网络词鸡汤 编辑:程序博客网 时间:2024/06/11 21:33
数据结构实验之排序二:交换排序
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
冒泡排序和快速排序都是基于"交换"进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。
Input
连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。
Output
输出数据占一行,代表冒泡排序和快速排序进行排序分别需要的交换次数,数字间以1个空格分隔,行末不得有多余空格。
Example Input
849 38 65 97 76 13 27 49
Example Output
15 9
Hint
注意:数据相等时不做交换,在快排中加一个判断
#include<bits/stdc++.h>using namespace std;int a[100010],b[100010];int sum1,sum2;void qsort(int a[],int l,int r){ int i,j,key; if(l<r) { i=l; j=r; key=a[l]; while(i<j) { while(i<j&&key<=a[j]) { j--; } if(a[i]!=a[j])///zhongyao { sum1++; } a[i]=a[j]; while(i<j&&key>=a[i]) { i++; } if(a[i]!=a[j]) { sum1++; } a[j]=a[i]; } a[i]=key; qsort(a,l,i-1); qsort(a,i+1,r); }}void bx(int b[],int n){ int i,j,t; for(i=0;i<n;i++) { for(j=0;j<n-1-i;j++) { if(b[j]>b[j+1]) { t=b[j]; b[j]=b[j+1]; b[j+1]=t; sum2++; } } }}int main(){ int n,i; while(cin>>n) { sum1=sum2=0; for(i=0;i<n;i++) { cin>>a[i]; b[i]=a[i]; } qsort(a,0,n-1); bx(b,n); cout<<sum2<<" "<<sum1<<endl; } return 0;}
阅读全文
0 0
- 数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和
- 数据结构实验之二叉树三:统计叶子数 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description
- 1-1 欢迎来的C++世界 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 通
- 数据结构实验之二叉树一:树的同构数据结构实验之二叉树一:树的同构 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem D
- 算符优先系列之(一)Firstvt和Lastvt集 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descri
- 树-堆结构练习——合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip
- 【基础试题】排序(初级) Time Limit:1000MS Memory Limit:65536K Total Submit:1510 Accepted:672 Description
- 数据结构实验之查找一:二叉排序树 Time Limit: 400MS Memory Limit: 65536KB
- E - 排序 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
- Problem D: C++习题-快速排序 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 395 Solved: 169 [Submit][Stat
- 【基础试题】蛇形矩阵 Time Limit:1000MS Memory Limit:65536K Total Submit:252 Accepted:118 Description 蛇形矩
- 【基础试题】约瑟夫环问题 Time Limit:1000MS Memory Limit:65536K Total Submit:426 Accepted:283 Description 有
- 【基础试题】百钱买百鸡 Time Limit:1000MS Memory Limit:65536K Total Submit:1501 Accepted:441 Description 一
- 【基础试题】输出如下图形 Time Limit:1000MS Memory Limit:65536K Total Submit:604 Accepted:384 Description 输
- 【基础试题】验证哥德巴赫猜想 Time Limit:1000MS Memory Limit:65536K Total Submit:566 Accepted:267 Description
- 【基础试题】数组元素的操作 Time Limit:1000MS Memory Limit:65536K Total Submit:441 Accepted:225 Description
- 【基础试题】兔子繁殖问题 Time Limit:1000MS Memory Limit:65536K Total Submit:674 Accepted:263 Description 有
- SDUTACM Anohana: The Flower We Saw That Day Time Limit: 1000MS Memory Limit: 65536KB
- MyEclipse2014配置Maven
- web.xml配置详解
- 滴滴云安装nginx时候报错nginx c compiler cc is not found
- Mac Hbuilder SVN卡死问题解决
- Spring启动,constructor,@PostConstruct,afterPropertiesSet,onApplicationEvent执行顺序 原创 2016年09月29日 11:39:2
- 数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和
- jquery可见性过滤
- 如何在QT中添加.lib,.dll还有.h文件
- 自定义拦截器封装公共请求参数
- jquery鼠标事件
- 第12周 【项目2 Dijkstra算法的验证】
- 商品详情页面
- Linux下apache日志分析与状态查看方法
- 4U8路服务器:将性能扩展到每一英寸