zoukankan      html  css  js  c++  java
  • Sort函数的用法

    快速排序sort的用法:(适用于int float double char 。。。)

    记得加头文件!

    记得加头文件!

    记得加头文件!

    头文件: #include <algorithm> 

     using namespace std ;     // 两行都要写

     

    数组排序:

     1 #include <algorithm>
     2 
     3 using namespace std;
     4 
     5 int   a[10] = {9,6,3,0,2,5,8,7,4,1};
     6 
     7 sort(a,a+10);   // 如果数组中有n个整数   sort(a,a+n);
     8 
     9  
    10 
    11 // 结果为:0 1 2 3 4 5 6 7 8 9         
    12 
    13 // 如果是 sort(a,a+5),则只对a数组中前五个元素进行排序。。。其他的触类旁通、(自己敲点代码验证一下)            
    14 
    15 // 注意:sort函数默认按升序排列   
    16 
    17 
    18 // 想让按降序排列的话,需要加cmp
    19 
    20 #include <algorithm>
    21 
    22 using namespace std;
    23 
    24 int   a[10] = {9,6,3,0,2,5,8,7,4,1};
    25 bool  cmp(int a,int b)
    26 {
    27     return  a> b;
    28 }
    29 sort(a,a+10);
    30 
    31 // 结果为:9 8 7 6 5 4 3 2 1 0 。

    结构体排序:

    例:

    考生的信息包括:考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号 (题目号由1到M)。

    这些信息可以用一个结构体存起来

    1 struct  Student
    2 {
    3     char  str[30];   //考生准考证号
    4     int  m;  // 解决题目总数
    5     int  num[20];  //存题号
    6     int  sum;  // 考生的最后得分
    7 
    8 }student[1010];

    排序要求:按分数从高 到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考号的升序输出。 

    注意有两个排序要求

    1、按分数从高 到低      2、分数相同,则按他们考号的升序

    所以cmp可以这样写

    1 bool  cmp (Student  a, Student  b)  // 注意这里的变量a、b均为 Student类型
    2 {
    3     if (a.sum  > b.sum)      //1、按分数从高 到低  
    4         return true;
    5     if (a.sum == b.sum && strcmp(a.str , b.str < 0)  //2、分数相同,则按他们考号的升序
    6         return true;
    7     else
    8         return false;
    9 }

    /*  If you have any questions, please contact me  */

  • 相关阅读:
    typescript泛型
    安卓手机IPhone抓包Https
    js里面for循环的++i与i++
    http请求头
    从浏览器地址栏输入url到页面呈现
    docker部署nodejs应用
    mac下使用MongoDB
    使用vue-cli3&vue ui图形化界面创建项目
    javascript中的call, apply(转载)
    跨域请求
  • 原文地址:https://www.cnblogs.com/yoke/p/6695389.html
Copyright © 2011-2022 走看看