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

2023-05-16

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

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic Discuss

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

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

Source

xam

 

 

 

#include<stdio.h>

int a[10001], b[10001];
int s;

void sqort(int a[], int left, int right)
{
    int i = left, j = right, key = a[left];

    while(i >= j)
    {
        //s++;
        return ;
    }

    while(i < j)
    {
        while(i < j && a[j] >= key)
        {
            j--;
        }

        if(i != j)
        {
            a[i] = a[j];

            s++;
        }

        while(i < j && a[i] <= key)
        {
            i++;
        }


        if(i != j)
        {
            a[j] = a[i];
            s++;
        }
    }

    a[i] = key;

    sqort(a, left, i - 1);
    sqort(a, i + 1, right);
}

int main(void)
{
    int i, j, t, x;
    long long n;

    while(~scanf("%lld", &n))
    {
        x = 0;
        s = 0;

        for(i = 0; i < n; i++)
        {
            scanf("%d", &a[i]);
            b[i] = a[i];
        }

        for(i = 0; i < n - 1; 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;
                    x++;
                }
            }
        }

        sqort(a, 0, n - 1);

        printf("%d %d\n", x, s);
    }

    return 0;
}
 

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

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

  • django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

    django2 2 mysql ImproperlyConfigured mysqlclient 1 3 13 or newer is required you have 0 9 3 这个是我昨天的在做项目的时候 xff0c 遇见的一个问题
  • Day-3页面分析(Xpath)

    一 爬取分析 爬虫是非常考验随机性的 xff0c 运气性 xff0c 以及思维跳跃的 在此次项目中 xff0c 首先我们找到京东图书的页面 xff0c 进入到里边 京东所有图书的API接口是 xff1a http book jd com b
  • Centos7 环境配置安装boost库与mpich库

    Centos7 环境配置 一 安装mpich3 2 参考博客 xff1a https blog csdn net zhaohaibo article details 87197138 安装依赖 yum install y make gcc
  • Clion安装以及配置本地C++环境

    一 下载Clion 去JB公司官网下载CLion https www jetbrains com clion download section 61 windows 然后就是等 xff0c 一直等 xff0c 不要运行 xff0c 等到mi
  • 7-2国王游戏

    题目 xff1a 恰逢 H 国国庆 xff0c 国王邀请 n 位大臣来玩一个有奖游戏 首先 xff0c 他让每个大臣在左 右手上面分别写下一个整数 xff0c 国王自己也在左 右手上各写一个整数 然后 xff0c 让这 n 位大臣排成一排
  • 编码

    编码 Time Limit 1000MS Memory Limit 65536KB Problem Description 给你一个由大写字母组成的组成的字符串 xff0c 你可以用如下规则对其进行编码 xff1a 1 包含K个相同字母的连
  • C语言实验——字符编码

    C语言实验 字符编码 Time Limit 1000MS Memory Limit 65536KB Problem Description 请将一串长度为5的纯字母文本译成一个密码 xff0c 密码规律如下 xff1a 用原来的字母后面的第
  • C语言实验——求一个3*3矩阵对角线元素之和

    C语言实验 求一个3 3矩阵对角线元素之和 Time Limit 1000MS Memory Limit 65536KB Problem Description 给定一个3 3的矩阵 xff0c 请你求出对角线元素之和 Input 按照行优
  • 爬山

    爬山 Time Limit 1000MS Memory Limit 65536KB Problem Description LeiQ最近参加了一个登山俱乐部 xff0c 部长给他了一个n m地图 地图上的每一个格子的值表示一个山的海拔高度
  • 鞍点计算

    鞍点计算 Time Limit 1000MS Memory Limit 65536KB Problem Description 找出具有m行n列二维数组Array的 鞍点 xff0c 即该位置上的元素在该行上最大 xff0c 在该列上最小
  • 回文串判定

    回文串判定 Time Limit 1000MS Memory Limit 65536KB Problem Description 输入一串字符 xff08 长度小于100 xff09 xff0c 判断该串字符是否是回文串 xff08 正序读
  • C语言合法标识符

    C语言合法标识符 Time Limit 1000MS Memory Limit 65536KB Problem Description 输入一个字符串 xff0c 判断其是否是C的合法标识符 Input 输入数据包含多个测试实例 xff0c
  • 简单字符串排序

    简单字符串排序 Time Limit 5000MS Memory Limit 100000KB Problem Description 从键盘输入10个学生的姓名和成绩 xff0c 请按字典序排列学生的姓名并输出 xff08 姓名和成绩对应
  • 小鑫の日常系列故事(二)——石头剪子布

    小鑫 日常系列故事 xff08 二 xff09 石头剪子布 Time Limit 1000MS Memory Limit 65536KB 小鑫在上幼儿园的时候 xff0c 喜欢跟小伙伴健健玩石头剪子布的游戏 xff0c 你能帮他们判断谁胜谁
  • 中位数

    中位数 Problem Description 中位数是指在一组数据中 xff0c 按数值大小排序后处于中间位置的数 例如 xff1a 1 5 3 排序后为 1 3 5 xff0c 则其中位数为 3 特别地 xff0c 当数的个数 N 为偶
  • 分享下我 Github 被封的经历

    最近好像又有人 Github 被封 xff0c 每隔一段时间就有 分享下我自己的经历吧 xff0c 好几年以前了 xff0c 也许还是有点参考价值 账号被封 xff0c 查找原因 那是 2017 年 12 月 xff0c 有天早上起来突然发
  • 幸运数字

    幸运数字 Time Limit 1000MS Memory Limit 65536KB Problem Description 我们定义幸运数字为只含有且必须同时含有 4 和 7 的数 例如 xff1a 47 747 是幸运数字 xff0c
  • A-B Problem

    A B Problem Time Limit 1000MS Memory Limit 65536KB Problem Description 这次当然不是简单的 a b 呐 xff5e 有一个神奇的变换规则是这样的 xff1a 给定两个数
  • C语言实验——一元二次方程Ⅰ

    C语言实验 一元二次方程 Time Limit 1000MS Memory Limit 65536KB Problem Description 解一元二次方程ax 2 43 bx 43 c 61 0的解 保证有解 Input a b c的值
  • C/C++经典程序训练2---斐波那契数列

    C C 43 43 经典程序训练2 斐波那契数列 Time Limit 1000MS Memory Limit 65536KB Problem Description 编写计算斐波那契 xff08 Fibonacci xff09 数列的第n

随机推荐

  • C/C++程序训练6---歌德巴赫猜想的证明

    C C 43 43 程序训练6 歌德巴赫猜想的证明 Time Limit 1000MS Memory Limit 65536KB Problem Description 验证 每个不小于6的偶数都是两个素数之和 xff0c 输入一个不小于6
  • C语言实验——整数位

    C语言实验 整数位 Time Limit 1000MS Memory Limit 65536KB Problem Description 输入一个不多于5位的正整数 xff0c 要求 xff1a xff08 1 xff09 求出它是几位数
  • C语言实验——各位数字之和排序

    C语言实验 各位数字之和排序 Time Limit 1000MS Memory Limit 65536KB Problem Description 给定n个正整数 xff0c 根据各位数字之和从小到大进行排序 Input 输入数据有多组 x
  • yxc 的日常

    yxc 的日常 Time Limit 1000MS Memory Limit 65536KB Problem Description yxc 特别喜欢睡觉 xff0c 但是由于上课和训练 xff0c 他睡觉的时间并不是连续的 xff0c 他
  • 奇偶性

    奇偶性 Time Limit 1000MS Memory Limit 32768KB Problem Description 判断输入的数据的奇偶性 Input 输入数据第一行是一个正整数N 接下来N行 xff0c 每行一个正整数 Outp
  • 念数字

    山东理工大学第一届团体程序设计天梯赛各班内组队选拔测试赛 3 290 分 编程题共 15 小题 xff0c 共计 290 分 剩余时间 30 03 10 剩余时间 30 03 10 编程题 7 9 念数字 xff08 15 分 xff09
  • Linux环境Ubuntu版本安装CMake V3.23.1记录

    以下采用源码方式安装 xff0c 先确认Ubuntu能够正常访问网络 以下bash终端命令皆是在root权限下 xff0c 否则在命令前加sudo 官方网址 xff1a 跳转连接 在命令终端切换root权限后 xff0c 安装以下内容 ni
  • 数据结构实验之链表二:逆序建立链表

    Problem Description 输入整数个数N xff0c 再输入N个整数 xff0c 按照这些整数输入的相反顺序建立单链表 xff0c 并依次遍历输出单链表的数据 Input 第一行输入整数N xff1b 第二行依次输入N个整数
  • 数据结构实验之链表一:顺序建立链表

    Problem Description 输入N个整数 xff0c 按照输入的顺序建立单链表存储 xff0c 并遍历所建立的单链表 xff0c 输出这些数据 Input 第一行输入整数的个数N xff1b 第二行依次输入每个整数 Output
  • 数据结构实验之链表七:单链表中重复元素的删除

    书上的例题 Problem Description 按照数据输入的相反顺序 xff08 逆位序 xff09 建立一个单链表 xff0c 并将单链表中重复的元素删除 xff08 值相同的元素只保留最后输入的一个 xff09 Input 第一行
  • 数据结构实验之链表九:双向链表

    数据结构实验之链表九 xff1a 双向链表 Time Limit 1000 ms Memory Limit 65536 KiB Problem Description 学会了单向链表 xff0c 我们又多了一种解决问题的能力 xff0c 单
  • 数据结构实验之排序八:快速排序

    数据结构实验之排序八 xff1a 快速排序 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 给定N N 10 5 个整数 xff0
  • 养兔子

    养兔子 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 一对成熟的兔子每天能且只能产下一对小兔子 xff0c 每次都生一公一母 x
  • 母牛的故事

    母牛的故事 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 有一对夫妇买了一头母牛 xff0c 它从第2年起每年年初生一头小母牛
  • 猴子分桃

    猴子分桃 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 老猴子辛苦了一辈子 xff0c 给那群小猴子们留下了一笔巨大的财富 一大
  • 骨牌铺方格

    骨牌铺方格 Time Limit 1000 ms Memory Limit 32768 KiB Submit Statistic Problem Description 在2 n的一个长方形方格中 用一个1 2的骨牌铺满方格 输入n 输出铺
  • 三国佚事——巴蜀之危

    三国佚事 巴蜀之危 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 话说天下大势 xff0c 分久必合 xff0c 合久必分 却道
  • 精读《设计模式 - Singleton 单例模式》

    Singleton xff08 单例模式 xff09 Singleton xff08 单例模式 xff09 属于创建型模式 xff0c 提供一种对象获取方式 xff0c 保证在一定范围内是唯一的 意图 xff1a 保证一个类仅有一个实例 x
  • 骨牌铺方格II

    骨牌铺方格II Problem Description 在3 n的一个长方形方格中 用一个1 3的骨牌铺满方格 输入n 输出铺放方案的总数 例如n 61 4时 为3 4方格 xff0c 骨牌的铺放方案有3种 Input 输入数据由多行组成
  • 数据结构实验之排序二:交换排序

    数据结构实验之排序二 xff1a 交换排序 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 冒泡排序和快速排序都是