SDUT OJ 数据结构实验之排序二:交换排序
数据结构实验之排序二:交换排序
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
Hint
注意:数据相等时不做交换
#include <stdio.h>
#include <stdlib.h>
#define N 100100
int x,y;
void qusort(int a[], int left, int right )
{
    int key,i,j,t;
    key=a[left];
    i=left;
    j=right;
    if(left>=right)
        return;
    while(i<j)
    {
        while(a[j]>=key&&i<j)
            j--;
        if(a[j]!=a[i]){
            a[i]=a[j];
            x++;
        }
        while(a[i]<=key&&i<j)
            i++;
        if(a[j]!=a[i]){
            a[j]=a[i];
            x++;
        }
    }
    //a[left]=a[i];
    a[i]=key;
    //qs=&x;
    qusort( a, left, i-1 );
    qusort( a, i+1, right);
    return;
}
void ooosort( int a[] , int n )
{
    int i,j,t;
    for(i=0; i<n-1; i++){
        for(j=0; j<n-1-i; j++){
            if(a[j]>a[j+1]){
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
                y++;
            }
        }
    }
    //os=&y;
}
int main()
{
    int i,n,a[N],b[N];
    while(scanf("%d",&n)!=EOF){
        x=0;y=0;
        for(i=0; i<n; i++){
            scanf("%d",&a[i]);
            b[i]=a[i];
        }
        qusort(a,0,n-1);
        ooosort(b,n);
        printf("%d %d\n",y,x);
    }
    return 0;
}SDUT OJ 数据结构实验之排序二:交换排序的更多相关文章
- SDUT 3399 数据结构实验之排序二:交换排序
		数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和快 ... 
- SDUT OJ 数据结构实验之二叉树二:遍历二叉树
		数据结构实验之二叉树二:遍历二叉树 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ... 
- SDUT OJ 数据结构实验之串二:字符串匹配
		数据结构实验之串二:字符串匹配 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ... 
- SDUT OJ 数据结构实验之排序四:寻找大富翁
		数据结构实验之排序四:寻找大富翁 Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Discuss Problem Descripti ... 
- SDUT OJ 数据结构实验之排序三:bucket sort
		数据结构实验之排序三:bucket sort Time Limit: 250 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem D ... 
- SDUT OJ 数据结构实验之排序一:一趟快排
		数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ... 
- SDUT OJ 数据结构实验之排序八:快速排序
		数据结构实验之排序八:快速排序 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给定N ... 
- SDUT OJ 数据结构实验之链表二:逆序建立链表
		数据结构实验之链表二:逆序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ... 
- SDUT-3399_数据结构实验之排序二:交换排序
		数据结构实验之排序二:交换排序 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 冒泡排序和快速排序都是基于"交 ... 
随机推荐
- jQuery.ajax向后台传递数组问题
			今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds. ... 
- deeplearning.ai 旁听如何做课后编程作业
			在上吴恩达老师的深度学习课程,在coursera上. 我觉得课程绝对值的49刀,但是确实没有额外的钱来上课.而且课程提供了旁听和助学金. 之前在coursera上算法和机器学习都是直接旁听的,这些课旁 ... 
- 生成ssl脚本文件
			read -p "Enter your domain [www.example.com]: " DOMAIN echo "Create server key...&quo ... 
- saltstack系列(三)——zmq订阅/发布模式
			zmq订阅发布模式 server端代码: #coding=utf-8 ''''' 服务端,发布模式 ''' import zmq from random import randrange contex ... 
- java基础之JDBC九:DbUtils的简介及使用
			DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能. 使用步骤: A: 获取可以执行SQL语句的对象. pu ... 
- 使用HttpServletRequestWrapper修改请求参数 和 使用HttpServletResponseWrapper截获响应数据
			Servlet规范中的Filter引入了一个功能强大的拦截模式.Filter能在request到达servlet的服务方法之前拦截request对象,而在服务方法转移控制后又能拦截response对象 ... 
- [GO]随机数的使用
			package main import ( "math/rand" "time" "fmt" ) func main() { //设置种子, ... 
- oracle数据库之数据插入、修改和删除
			作为一合格的测试人员对数据库的单表查询.多表查询.分组查询.子查询等等这些基本查询方法还是要会的.不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因 ... 
- Customizing Site-Wide Behavior for ASP.NET Web Pages (Razor) Sites
			Customizing Site-Wide Behavior for ASP.NET Web Pages (Razor) Sites By Tom FitzMacken|February 17, 20 ... 
- orcad找不到dll
			如果运行Capture.exe找不到cdn_sfl401as.dll,如果运行allegro.exe找不到cnlib.dll,(上面俩个库文件都在C:/Cadence/SPB_16.3/tools/b ... 
