• STL排序和检索


    //参考书是刘汝佳的那本算法书P108
    
    //sort的用法也就是本来是从小到大排序,如果想要从大到小,中间写一个比较函数就可以了;
    
    //以下两个检索的东西
    
    //lower_bound找到一个值的最小插入位置 int tmp1=lower_bound(a,a+n,x)-a; 
    
    
    //upper_bound找到一个值的最大插入位置int tmp2=upper_bound(a,a+n,x)-a;
    
    下面是自己出的一道水题
    
    
    
    新学期刚开始,班上来了一个转专业的学生,现在要给这个学生安排位置。请你写个程序帮助老师安排合适的位置给新同学。
    
    Input
    
    数据有多组,每组数据有多行,第一行是一个整数N(N<100),代表班机上有N个人,第二行有N个整数,代表每位同学的身高,第三行是一个整数X,代表新同学的身高。
    
    Output
    
    对于每组数据都应该输出一行,包含三个数据,即该新同学最少能插入那个位置,最多能插入那个位置,并输出原来该位置上的同学身高
    
    #include<stdio.h>
    
    #include<algorithm>
    
    using namespace std;
    
    const int maxn =10000;
    
    int main()
    
    {
    
       int n,i;
    
       int a[maxn],x;
    
       while(~scanf("%d",&n))
    
        {
    
           for(i=0;i<n;i++)
    
               scanf("%d",&a[i]);
    
           sort(a,a+n);
    
           scanf("%d",&x);
    
           int tmp1=lower_bound(a,a+n,x)-a;  ////按从小到大,7最少能插入数组point的哪个位置
    
           int tmp2=upper_bound(a,a+n,x)-a;  //按从小到大,7最多能插入数组point的哪个位置
    
           printf("%d %d %d
    ",tmp1+1,x,a[tmp1]);
    
           printf("%d %d %d
    ",tmp2+1,x,a[tmp2]);
    
        }
    
       return 0;
    
    }
  • 相关阅读:
    1002CSP-S模拟测试赛后总结
    「题解」:X国的军队
    1001CSP-S模拟测试赛后总结
    「题解」:联
    0929CSP-S模拟测试赛后总结
    「题解」:Kill
    「题解」:y
    Censoring【自动AC机】【水题毁我青春】【20190614】
    传说级快读
    针对值域与下标关系的总结
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934574.html
Copyright © 2020-2023  润新知