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

2023-05-16

#include <stdio.h>
int s,x;
void qsort(int a[], int l, int h)
{
    int i = l, j = h, k = a[l];
    while(i >= j)
        return ;
    while(i < j)
    {
        while(i < j && a[j] >= k)
            j--;
        if (i!=j)
        {
            a[i] = a[j];
            s++;
        }
        while(i < j && a[i] <= k)
            i++;
        if (i!=j)
        {
            a[j] = a[i];
            s++;
        }
    }
    a[i] = k;
    qsort(a, l, i-1);
    qsort(a, i + 1, h);
}
void paosort(int b[], int n)
{
    int i, j ;
    for (i = 0 ; i < n - 1  ; i++)
    {
        for (j = 0 ;  j<  n - i - 1; j++)
        {
            if (b[j] > b[j+1])
            {
                int t;
                t = b[j], b[j] = b[j+1], b[j+1] = t;
                x++;
            }
        }
    }
}

int main()
{
    int a[10010];
    int b[10010];
    int n, i,j;
    while(~scanf("%d", &n))
    {
        s = 0;
        x = 0;
        for (i = 0 ; i < n ; i++)
        {
            scanf("%d", &a[i]);
            b[i] = a[i];
        }
        paosort(b , n);
        qsort(a, 0, n-1);
        printf("%d %d\n",x, s);

    }
    return 0;
}


Time Limit: 1000 ms Memory Limit: 65536 KiB

 

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  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构实验之排序二:交换排序 的相关文章

随机推荐

  • 数据结构实验之二叉树的建立与遍历

    数据结构实验之二叉树的建立与遍历 二叉树的基本操作 xff0c 中序遍历 xff0c 后序遍历 xff0c 前序遍历 xff0c 只是根节点输出的位置不同 xff0c 叶子结点 xff0c 深度 xff0c 需要自己理解 xff0c 也非常
  • 哈夫曼树

    什么是哈夫曼树 xff1f 让我们先举一个例子 判定树 xff1a 在很多问题的处理过程中 xff0c 需要进行大量的条件判断 xff0c 这些判断结构的设计直接影响着程序的执行效率 例如 xff0c 编制一个程序 xff0c 将百分制转换
  • 哈夫曼树的概念及其实现

    1 基本概念 a 路径和路径长度 若在一棵树中存在着一个结点序列 k1 xff0c k2 xff0c xff0c kj xff0c 使得 ki是ki 43 1 的双亲 xff08 1 lt 61 i lt j xff09 xff0c 则称此
  • 二叉排序树详解

    二叉排序树的介绍 二叉排序树为一颗二叉树 xff0c 或者为空 xff0c 或者满足如下条件 xff1a 如果它的左子树不为空 xff0c 那么左子树上的所有结点的值均小于它的根结点的值如果它的右子树不为空 xff0c 那么右子树上的左右结
  • 数据结构实验之队列一:排队买饭

    数据结构实验之队列一 排队买饭 这个题猛的一看可能会有点麻烦 xff0c 但是其实一点也不 xff0c 只要把每个情况用if条件语句分清就可以了 有一点栈的思想 Problem Description 中午买饭的人特多 食堂真是太拥挤了 买
  • bLue的文件查找器

    bLue的文件查找器 用结构体数组按顺序存储 xff0c 每次查找的时候只是判断最后的文件格式ex Problem Description bLue 的电脑里存了各种各样的文件 xff0c 随着文件越来越多 xff0c 查找文件也成了一个麻
  • 图的基本存储的基本方式二

    小编在网上看到好多博主的文章这道题都没有用结构体做 xff0c 数据量太大 xff0c 结构体也是一个不错的选择 但是结构体有一个不好的地方 xff0c 不能直接搜索 xff0c 只能每次从头开始搜索 xff0c 有点浪费时间 Proble
  • 图的基本存储的基本方式一

    这个题主要的是这个 stdbool h 这个函数 xff0c 还有bool这个数组 Problem Description 解决图论问题 xff0c 首先就要思考用什么样的方式存储图 但是小鑫却怎么也弄不明白如何存图才能有利于解决问题 你能
  • 图的基本存储的基本方式四

    一直不知道这个题为什么用链表可以A xff0c 但是结构体就会WA xff0c 如果有童鞋们知道 xff0c 希望能留下想法 xff0c 一起学习 xff0c 一起进步 Problem Description 解决图论问题 xff0c 首先
  • C# 超详细的WebService创建、发布与调用(VS2019)

    1 编写接口 这里我选择的是 ASP NET Web应用程序 NET Framework 填写好项目名称 选择项目位置以及所使用的框架 xff0c 这里我用的是 NET Framework 4 框架 xff0c 然后点击创建 继续点击创建
  • 图的基本存储的基本方式三

    图的基本存储的基本方式三 Problem Description 解决图论问题 xff0c 首先就要思考用什么样的方式存储图 但是小鑫却怎么也弄不明白如何存图才能有利于解决问题 你能帮他解决这个问题么 xff1f Input 多组输入 xf
  • 数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九 xff1a 行编辑器 Problem Description 一个简单的行编辑程序的功能是 xff1a 接受用户从终端输入的程序或数据 xff0c 并存入用户的数据区 由于用户在终端上进行输入时 xff0c 不能保
  • 顺序表应用2:多余元素删除之建表算法

    顺序表应用2 xff1a 多余元素删除之建表算法 Time Limit 3 ms Memory Limit 600 KiB Submit Statistic Problem Description 一个长度不超过10000数据的顺序表 xf
  • 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四 xff1a 有序链表的归并 Problem Description 分别输入两个有序的整数序列 xff08 分别包含M和N个数据 xff09 xff0c 建立两个有序的单链表 xff0c 将这两个有序单链表合并成为一个
  • 数据结构实验之链表五:单链表的拆分

    数据结构实验之链表五 xff1a 单链表的拆分 Problem Description 输入N个整数顺序建立一个单链表 xff0c 将该单链表拆分成两个子链表 xff0c 第一个子链表存放了所有的偶数 xff0c 第二个子链表存放了所有的奇
  • 数据结构——二叉树的基本操作(不包括还原)

    小编没有写主函数 xff0c 你们需要用什么函数只需要自己写一个主函数调用一下就可以了 include lt stdio h gt include lt string h gt include lt stdlib h gt typedef
  • 数据结构实验之图论四:迷宫探索

    数据结构实验之图论四 xff1a 迷宫探索 Time Limit 1000 ms Memory Limit 65536 KiB Problem Description 有一个地下迷宫 xff0c 它的通道都是直的 xff0c 而通道所有交叉
  • 数据结构实验之图论七:驴友计划

    数据结构实验之图论七 xff1a 驴友计划 Time Limit 1000MS Memory Limit 65536KB Problem Description 做为一个资深驴友 xff0c 小新有一张珍藏的自驾游线路图 xff0c 图上详
  • 数据结构实验之排序一:一趟快排

    H 数据结构实验之排序一 xff1a 一趟快排 Problem Description 给定N个长整型范围内的整数 xff0c 要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果 Input 连续输入多组数据 xff0c 每组输入
  • 数据结构实验之排序二:交换排序

    include lt stdio h gt int s x void qsort int a int l int h int i 61 l j 61 h k 61 a l while i gt 61 j return while i lt