说了那么多种排序方法了,下面就来先做几个题吧

06:整数奇偶排序

总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定10个整数的序列,要求对其重新排序。排序要求:

1.奇数在前,偶数在后;

2.奇数按从大到小排序;

3.偶数按从小到大排序。

输入
输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。
输出
按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。
样例输入
4 7 3 13 11 12 0 47 34 98
样例输出
47 13 11 7 3 0 4 12 34 98
来源
1873

法一
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
];
int main()
{
    ;i<=;i++)
       scanf("%d",&a[i]);
    sort(a+,a+);
    ;i>=;i--)
      !=)
         cout<<a[i]<<" ";
    ;i<=;i++)
       ==)
         cout<<a[i]<<" ";

    ;
}
法二
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int l,r;
],b[],c[];//b数组用来存偶数,c数组用来存奇数
int main()
{
    ;i<=;i++)
    {
        scanf("%d",&a[i]);
        ==)
        {
            l++;
            b[l]=a[i];
        }
        else
        {
            r++;
            c[r]=a[i];
        }
    }

       sort(b+,b+l+);
       sort(c+,c+r+);
    ;i--)
      cout<<c[i]<<" ";
    ;i<=l;i++)
      cout<<b[i]<<" ";
     ;
}

07:合影效果

总时间限制: 
1000ms

内存限制: 
65536kB
描述

小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?

输入
第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。
后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数,单位米),两个数据之间以空格分隔。
输出
n个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后2位,相邻两个数之间用单个空格隔开。
样例输入
6
male 1.72
male 1.78
female 1.61
male 1.65
female 1.70
female 1.56
样例输出
1.65 1.72 1.78 1.70 1.61 1.56
来源
医学部 2010 期末试题 李雁章
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,l,r;
],b[],c[];
int main()
{
    scanf("%d",&n);
    ;i<=n;i++)
    {
        string k;
        cin>>k>>a[i];
        if(k=="male")
        {
            l++;
            b[l]=a[i];
        }
        if(k=="female")
        {
            r++;
            c[r]=a[i];
        }
    }
       sort(b+,b+l+);
       sort(c+,c+r+);
    ;i<=l;i++)
      printf("%.2f ",b[i]);
    ;i--)
      printf("%.2f ",c[i]);
     ;
}

08:病人排队

总时间限制: 
1000ms

内存限制: 
65536kB
描述

病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序: 
1. 老年人(年龄 >= 60岁)比非老年人优先看病。 
2. 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。 
3. 非老年人按登记的先后顺序看病。

输入
第1行,输入一个小于100的正整数,表示病人的个数;
后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。
输出
按排好的看病顺序输出病人的ID,每行一个。
样例输入
5
021075 40
004003 15
010158 67
021033 75
102012 30
样例输出
021033
010158
021075
004003
102012
来源
题解
#include<iostream>
using namespace std;
struct man {
    int i;
    string e;
    int s;
};
int n;
man a[];
int main() {
    int i,j;
    cin>>n;
    ; i<=n; i++) {
        a[i].i=i;
        cin>>a[i].e>>a[i].s;
    }
    ; i<=n-; i++) {
        ; j<=n; j++)
            &&a[i].s<)
                swap(a[i],a[j]);
            &&a[i].s>=&&a[j].s>a[i].s)
                swap(a[i],a[j]);
            &&a[i].s>=&&a[j].s==a[i].s&&a[j].i<a[i].i)
                swap(a[i],a[j]);
            &&a[i].s<&&a[j].i<a[i].i)
                swap(a[i],a[j]);
    }
    ; i<=n; i++)
        cout<<a[i].e<<endl;
    ;
}

09:明明的随机数

总时间限制: 
1000ms

内存限制: 
65536kB
描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入
有2行,第1行为1个正整数,表示所生成的随机数的个数:N;
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
10
20 40 32 67 40 20 89 300 400 15
样例输出
8
15 20 32 40 67 89 300 400
来源
NOIP2006复赛 普及组 第一题
哦,这道题好像是纯桶排哦,有没有感觉到这些题low爆了
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int n,l;
];
int main()
{
    scanf("%d",&n);
    ;i<=n;i++)
    {
        int k;
        scanf("%d",&k);
        )
        {
         a[k]=;
         l++;
        }
    }
    cout<<l<<endl;
    ;i<=;i++)
        ) cout<<i<<" ";
    ;
}

数据排序 第三讲( 各种排序方法 结合noi题库1.10)的更多相关文章

  1. 数据排序 第二讲( 各种排序方法 结合noi题库1.10)

    先来个题练练手吧! 例题 04:奖学金 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生 ...

  2. 数据排序 第一讲( 各种排序方法 结合noi题库1.10)

    选择排序 1.基本思想:每一趟从待排序的数据元素选出最小或最大的一个元素,数按序排放在待排序的元素的最前端,直到全部待排序的元素排完 2.基本代码 px(int r[]) { ;i<n;i++) ...

  3. PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)

    一.先看最简单的情况. 有两个数组: $arr1 = array(1, 9, 5); $arr2 = array(6, 2, 4); array_multisort($arr1, $arr2); pr ...

  4. MySQL使用 IN 查询取出数据排序问题(与in排序相同、不排序)

    MySQL使用 IN 查询取出数据排序问题(与in排序相同) 今天在项目中遇到一个问题,就是做一个最近浏览的功能,但是功能做出来了,取出数据时候要用到类似这么一条带in查询的sql语句, select ...

  5. 1T数据快速排序!十种经典排序算法总结

    1 冒泡排序 每次循环都比较前后两个元素的大小,如果前者大于后者,则将两者进行交换.这样做会将每次循环中最大的元素替换到末尾,逐渐形成有序集合.将每次循环中的最大元素逐渐由队首转移到队尾的过程形似&q ...

  6. mysql 查询数据时按照A-Z顺序排序返回结果集

    mysql 查询数据时按照A-Z顺序排序返回结果集 $sql = "SELECT * , ELT( INTERVAL( CONV( HEX( left( name, 1 ) ) , 16, ...

  7. 排序图解:js排序算法实现

    之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...

  8. 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较

    2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...

  9. C++ STL中Map的按Key排序和按Value排序

    map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区 分),我们用map来进 ...

随机推荐

  1. [洛谷P1361]小M的作物

    题目大意:将作物种在A,B两地,对于每种作物,种A,B分别有不同的收益,对于一些特殊的作物集合,共同种到A,B集合分别有一些额外收益.求最大收益. 题解:最小割,S向i连容量为$a_i$的边,i向T连 ...

  2. [Leetcode] first missing positve 缺失的第一个正数

    Given an unsorted integer array, find the first missing positive integer. For example,Given[1,2,0]re ...

  3. 移动端弹窗滚动时window窗体也一起滚动的解决办法

    在做移动端项目的时候发现,如果弹窗的内容很多很长,在滑动弹窗时,蒙层下面的window窗体也会跟着一起滚动,这样带来很差的视觉体验:当时也想了很多办法,比如判断滑动的元素,如果是弹窗里面的元素则禁止w ...

  4. NodeJS + PhantomJS 前端自动化资源监控

    前言:最近做前端资源监控,看了很多例子,没有达到想要的效果.首先的槽点是PhantomJS的官方文档,真鸡肋,其次是网上的例子,多数是介绍PhantomJS的用法,而并没有介绍怎么完整的去实现,跟官方 ...

  5. JQuery队列queue与原生模仿其实现

    jQuery中的queue和dequeue是一组很有用的方法,他们对于一系列需要按次序运行的函数特别有用.特别animate动画,ajax,以及timeout等需要一定时间的函数. queue() 方 ...

  6. 数学:Lucas定理

    利用Lucas定理解决大组合数取模 Lucas定理是用来求 C(n,m) mod p,p为素数的值.(注意:p一定是素数) Lucas定理用来解决大组合数求模是很有用的 Lucas定理最大的数据处理能 ...

  7. IDEA的常用快捷键

    --------------在日常写代码的过程中自行整理出来----------------- *Alt+Enter 导入包 Ctrl+Alt+L 自动格式化代码 *Alt+Enter 自我修复 Sh ...

  8. 愚蠢的LCAAAAA~~~~(>_<)~~~~

    很愤怒!特别愤怒!超级愤怒!!! 我LCA居然错了!!而且是那种特别愚蠢的错误 我把代码都交错了!!! silasila 话不多说,代码上特别详细了 #include<bits/stdc++.h ...

  9. canvas动态绘制饼状图,

    当我们使用Echrts很Highcharts的时候,总是觉得各种统计图表是多么神奇,今天我就用现代浏览器支持的canvas来绘制饼状统计图,当然仅仅是画出图并没什么难度,但是统计图一般都有输入,根据不 ...

  10. 爆破phpmyadmin小脚本

    #!usr/bin/env python #encoding: utf-8 #by i3ekr import requests headers = {'Content-Type':'applicati ...