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

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. HDU 6201 transaction transaction transaction(拆点最长路)

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  2. 实际上ECMAScript中并没有对类的定义

    首先,我们用一个经典例子来简单阐述一下ECMAScript中的继承机制. 在几何学上,实质上几何形状只有两种,即椭圆形(是圆形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形. ...

  3. linux bash学习(一)

    1.请你以 read 指令的用途,撰写一个 script ,他可以让使用者输入:1. first name 与 2. last name, 最后并且在屏幕上显示:“Your full name is: ...

  4. HDU 2844 二进制优化的多重背包

    Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  5. getActionBar为null的解决以及ActionBar的Back键

    http://blog.csdn.net/lincyang/article/details/46286895

  6. gogole调试请求体的数据怎么知道

    在network---->header->request payload中看 详细情况见下图所示:

  7. 【Foreign】哈密顿回路 [MIM]

    哈密顿回路 Time Limit: 15 Sec  Memory Limit: 256 MB Description Input Output Sample Input 4 10 0 3 2 1 3 ...

  8. 【BZOJ2527】【POI2011】Meteors [整体二分]

    Meteors Time Limit: 60 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 这个星球经常会下陨石雨.BI ...

  9. mysqli_insert_id

    mysqli_insert_id($mysqli),这个函数一开始我用的时候老是返回0,疯掉了,百度了n次,问了n个人,搞了几天,就是解决不了,最后我把他换成面对对象编程,终于成功了,开心,也许这就是 ...

  10. javascript的阻塞机制

    javascript的阻塞机制 浏览器在执行javascript代码时,不能同时做其它事情,当遇到javascript时,浏览器会下载js文件,解析并执行该文件,而在这期间页面的渲染是完全被阻塞的,因 ...