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

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

注意:数据相等时不做交换

DQE:

冒泡和快排,注意快排是怎么统计次数的,冒泡时下标从1和0开始时的循环条件的区别~

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4
 5 int buble(int *f,int n)
 6 {
 7     int i,j,count=0;;
 8     for(i=1;i<=n-1;i++)
 9         for(j=1;j<=n-i;j++)
10             if(f[j]>f[j+1])
11             {
12                 count++;
13                 int t=f[j];f[j]=f[j+1];f[j+1]=t;
14             }
15     return count;
16 }
17
18 int qs(int *f,int l,int r)
19 {
20     int count=0;
21     if(l>=r)
22         return 0;
23     int i=l,j=r;
24     int k=f[i];
25     while(i<j)
26     {
27         while(i<j&&f[j]>=k)
28             j--;
29         f[i]=f[j];
30         if(i!=j)
31             count++;
32         while(i<j&&f[i]<=k)
33             i++;
34         f[j]=f[i];
35         if(i!=j)
36             count++;
37     }
38     f[i]=k;
39     return count+qs(f,l,i-1)+qs(f,i+1,r);
40 }
41
42 int main()
43 {
44     int n;
45     while(scanf("%d",&n)!=EOF)
46     {
47         int f1[100010]={0},f2[100010]={0},i;
48         for(i=1;i<=n;i++)
49         {
50             scanf("%d",f1+i);
51             *(f2+i)=*(f1+i);
52         }
53         printf("%d %d\n",buble(f1,n),qs(f2,1,n));
54     }
55     return 0;
56 }
57
58 /***************************************************
59 User name: ***
60 Result: Accepted
61 Take time: 0ms
62 Take Memory: 928KB
63 Submit time: 2016-12-03 13:56:27
64 ****************************************************/

转载于:https://www.cnblogs.com/Leroscox/p/6128630.html

SDUT 3399 数据结构实验之排序二:交换排序相关推荐

  1. SDUT OJ 数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  2. sdut 3341数据结构实验之二叉树二:遍历二叉树

    数据结构实验之二叉树二:遍历二叉树 Time Limit: 1000MS Memory Limit: 65536K Problem Description 已知二叉树的一个按先序遍历输入的字符序列,如 ...

  3. SDUT _2117 数据结构实验之链表二:逆序建立链表

    点击打开链接 数据结构实验之链表二:逆序建立链表 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem D ...

  4. SDUT 3400 数据结构实验之排序三:bucket sort

    数据结构实验之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KB Submit Statistic Problem Description ...

  5. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...

  6. B - 数据结构实验之排序二:交换排序(冒泡和快排)

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

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

    手懒不想写... 转自http://blog.csdn.net/godsight/article/details/52150172 #include<bits/stdc++.h> usin ...

  8. SDUT A - 数据结构实验之排序一:一趟快排

    Description 给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果. Input 连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10 ...

  9. 数据结构实验之排序四:寻找大富翁 SDUT

    数据结构实验之排序四:寻找大富翁 SDUT Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Problem Description ...

最新文章

  1. 一文详解手眼标定之九点法
  2. mysql group by 分组查询
  3. java提高篇(七)-----关键字static
  4. shell中while循环案例
  5. UART串口通信浅谈之(二)--寄存器设置
  6. 修改选择文件按钮,变成自己设置的样式
  7. maven 公共模块依赖_idea 创建多模块依赖Maven项目
  8. 亿级流量 | 蚂蚁金服分布式事务实践解析
  9. 简述人工智能的发展历程图_简述华强北airpods的发展历程
  10. .net反射调用值类型引用参数时的处理办法(转)
  11. LINUX开发FIREFOX的插件:编译npruntime
  12. Atitit db query op shourt code lib list 数据库查询最佳实践 JdbcTemplate spring v2 u77 .docx Atitit db query o
  13. map字符串转json格式
  14. Tether市值十月下跌超过10亿美元
  15. 【C++】C++格式化输出/输出格式控制/输出精度控制
  16. 【TeXstudio】【7】段落,编号与自定义编号——《LaTeX入门》
  17. GitLab 安全漏洞 (CVE-2016-4340)复现
  18. 什么是数据库连接池?数据库连接池的机制?
  19. 618来了云服务器商家疯了
  20. 软件测试就业前景怎么样?

热门文章

  1. CodeBlocks使用第三方库(以使用pcre库为例)
  2. cocos2d-x 3.X (二)创建动起来的精灵
  3. zoj3494BCD Code(ac自动机+数位dp)
  4. Exception Handling Application Block (5)详细解
  5. 为WebBrowser的WEB页的Document注册事件的问题
  6. 【Azure Services Platform Step by Step-第5篇】.NET Services 概述
  7. python爬虫url参数有随机数、如何确定是正确的链接_Python爬虫知识点——请求
  8. 微擎url模式解读_微擎系统全局变量说明 - 微擎(WEIQING) – 黑锐源码社区 – bbs.heirui.cn...
  9. 接口返回500一般是什么错_什么情况下?超过了500万元的销售额标准,也不用办理一般纳税人资格认定?...
  10. 小程序api 分享scene_微信小程序 插件调用API的限制