B - 数据结构实验之排序二:交换排序(冒泡和快排)
Description
冒泡排序和快速排序都是基于"交换"进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。
Input
连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。
Output
输出数据占一行,代表冒泡排序和快速排序进行排序分别需要的交换次数,数字间以1个空格分隔,行末不得有多余空格。
Sample
Input
8
49 38 65 97 76 13 27 49
Output
15 9
Hint
注意:数据相等时不做交换
#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int num1, num2;
void qsort(int a[], int l, int r)
{int i = l, j = r, key = a[l];if(l >= r) return ;while(i < j){while(i < j && a[j] >= key) j--;if(a[i] != a[j])num1++;a[i] = a[j];while(i < j && a[i] <= key) i++;if(a[i] != a[j])num1++;a[j] = a[i];}a[i] = key;qsort(a, l, i - 1);qsort(a, i + 1, r);
}void blue(int a[], int n)
{for(int i = 0; i < n - 1; i++){for(int j = 0; j < n - 1 - i; j++){if(a[j] > a[j + 1]){swap(a[j], a[j + 1]);num2++;}}}
}
int main()
{int a1[N];int a2[N];int n;ios::sync_with_stdio(0);while(cin >> n){for(int i = 0; i < n; i++){cin >> a1[i];a2[i] = a1[i];}num1 = 0;qsort(a1, 0, n - 1);num2 = 0;blue(a2, n);cout << num2 << " " << num1 << endl;}return 0;
}
B - 数据结构实验之排序二:交换排序(冒泡和快排)相关推荐
- SDUT OJ 数据结构实验之排序一:一趟快排
数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...
- A - 数据结构实验之排序一:一趟快排
Description 给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果. Input 连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10 ...
- 数据结构实验之排序一:一趟快排
题目描述 给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果. 输入 连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出 ...
- SDUT A - 数据结构实验之排序一:一趟快排
Description 给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果. Input 连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10 ...
- sdutacm- 数据结构实验之排序一:一趟快排
数据结构实验之排序一:一趟快排 TimeLimit: 1000MSMemory Limit: 65536KB SubmitStatistic ProblemDescription 给定N个长整型范围内 ...
- SDUT 3399 数据结构实验之排序二:交换排序
数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和快 ...
- 排序算法:冒泡和快排 摘自网络
冒泡排序: 首先我们自己来设计一下"冒泡排序",这种排序很现实的例子就是: 我抓一把沙仍进水里,那么沙子会立马沉入水底, 沙子上的灰尘会因为惯性暂时沉入水底,但是又会立马像气泡一样 ...
- 数据结构实验之排序二:交换排序
手懒不想写... 转自http://blog.csdn.net/godsight/article/details/52150172 #include<bits/stdc++.h> usin ...
- 数据结构与算法(二):排序(递归、回溯、数论、插入、希尔、归并、选择、冒泡、快排、贪心、动态规划)
算法排序:递归.回溯.数论.插入.希尔.归并.选择.冒泡.快排.贪心.动态规划 数论思想:利用数学公式或者定理或者规律求解问题: 算法思想中最难的点:递归+动态规划:树论:二叉树,红黑树 思考题: 微 ...
最新文章
- 吴恩达 coursera AI 专项二第一课总结+作业答案
- Mac下Ruby升级与Rails的安装
- SQL Server的Execute As与连接池结合使用的测试
- C语言学习笔记--函数与指针
- clickhouse建库_专访ClickHouse创始人:数据库竞争依旧火热,技术整合势在必行
- get mysql options_mysql命令的选项options
- python网络爬虫学习笔记(四):异常处理
- SpringBoot+Vue.js实现大文件分片上传、断点续传与极速秒传
- C#扩展名关联【转】
- k6前级效果器怎么用_K6效果器功能说明
- java6发布_Minecraft Java版 1.13-pre6 发布
- 基于springboot的校园食堂订餐系统
- 机关里看似讨巧实则毁人设的8种行为
- 输入框上的Magnifier
- python3 sleep 延时秒 毫秒
- 让你少走弯路 建站新手必看的十大忠告
- linux待机唤醒_Linux睡眠唤醒机制--Kernel态
- MFC创建处理中进度条,循环滚动进度条的方法
- bistu新生-1005
- 51单片机蓝牙密码锁