• Sort函数进行升序和降序排列[#include <algorithm>]


    用sort函数对int型的数组进行排序:【升序】

    方法一:

     1 #include<iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 int main()
     5 {
     6     int data[100];
     7     int n;
     8     int i;
     9     while(~scanf("%d",&n))
    10     {
    11         for(i=0;i<n;i++)
    12             scanf("%d",&data[i]);
    13         sort(data,data+n);
    14         for(i=0;i<n;i++)
    15         {
    16             if(i==0)
    17                 printf("%d",data[i]);
    18             else
    19                 printf(" %d",data[i]);
    20         }
    21         printf("\n");
    22     }
    23     return 0;
    24 }

    方法二:利用C++标准库#include<functional>

     1 #include<iostream>
     2 #include <algorithm>
     3 #include<functional>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int data[100];
     9     int n;
    10     int i;
    11     while(~scanf("%d",&n))
    12     {
    13         for(i=0;i<n;i++)
    14             scanf("%d",&data[i]);
    15         sort(data,data+n,greater<int>());
    16         for(i=0;i<n;i++)
    17         {
    18             if(i==0)
    19                 printf("%d",data[i]);
    20             else
    21                 printf(" %d",data[i]);
    22         }
    23         printf("\n");
    24     }
    25     return 0;
    26 }


    用sort函数对int型的数组进行排序:【降序】添加一个compare函数

    #include<iostream>
    #include <algorithm>
    using namespace std;
    
    bool compare(int a,int b)
    {
        return a>b;
    }
    
    int main()
    {
        int data[100];
        int n;
        int i;
        while(~scanf("%d",&n))
        {
            for(i=0;i<n;i++)
                scanf("%d",&data[i]);
            sort(data,data+n,compare);
            for(i=0;i<n;i++)
            {
                if(i==0)
                    printf("%d",data[i]);
                else
                    printf(" %d",data[i]);
            }
            printf("\n");
        }
        return 0;
    }

    方法二:用C++标准库#include<functional>

     1 #include<iostream>
     2 #include <algorithm>
     3 #include<functional>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int data[100];
     9     int n;
    10     int i;
    11     while(~scanf("%d",&n))
    12     {
    13         for(i=0;i<n;i++)
    14             scanf("%d",&data[i]);
    15         sort(data,data+n,less<int>());
    16         for(i=0;i<n;i++)
    17         {
    18             if(i==0)
    19                 printf("%d",data[i]);
    20             else
    21                 printf(" %d",data[i]);
    22         }
    23         printf("\n");
    24     }
    25     return 0;
    26 }


    用sort函数对char型的数组进行排序:【升序】

    方法一:

     1 #include<iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     char data[100];
     8     int n;
     9     int i;
    10     char temp;
    11     while(~scanf("%d",&n))
    12     {
    13         getchar();
    14         for(i=0;i<n*2;i++)
    15         {
    16             temp=getchar();
    17             if(temp!=' ')
    18                  data[(i+1)/2]=temp;
    19         }
    20         sort(data,data+n);
    21         for(i=0;i<n;i++)
    22         {
    23             if(i==0)
    24                 printf("%c",data[i]);
    25             else
    26                 printf(" %c",data[i]);
    27         }
    28         printf("\n");
    29     }
    30     return 0;
    31 }

    方法二:利用C++标准库#include<functional>

     1 #include<iostream>
     2 #include <algorithm>
     3 #include<functional>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     char data[100];
     9     int n;
    10     int i;
    11     char temp;
    12     while(~scanf("%d",&n))
    13     {
    14         getchar();
    15         for(i=0;i<n*2;i++)
    16         {
    17             temp=getchar();
    18             if(temp!=' ')
    19                  data[(i+1)/2]=temp;
    20         }
    21         sort(data,data+n,less<int>());
    22         for(i=0;i<n;i++)
    23         {
    24             if(i==0)
    25                 printf("%c",data[i]);
    26             else
    27                 printf(" %c",data[i]);
    28         }
    29         printf("\n");
    30     }
    31     return 0;
    32 }


    用sort函数对char型的数组进行排序:【降序】添加一个compare函数

     1 #include<iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 bool compare(char a,char b)
     6 {
     7     return a>b;
     8 }
     9 
    10 int main()
    11 {
    12     char data[100];
    13     int n;
    14     int i;
    15     char temp;
    16     while(~scanf("%d",&n))
    17     {
    18         getchar();
    19         for(i=0;i<n*2;i++)
    20         {
    21             temp=getchar();
    22             if(temp!=' ')
    23                  data[(i+1)/2]=temp;
    24         }
    25         sort(data,data+n,compare);
    26         for(i=0;i<n;i++)
    27         {
    28             if(i==0)
    29                 printf("%c",data[i]);
    30             else
    31                 printf(" %c",data[i]);
    32         }
    33         printf("\n");
    34     }
    35     return 0;
    36 }

    方法二:用C++标准库#include<functional>

     1 #include<iostream>
     2 #include <algorithm>
     3 #include<functional>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     char data[100];
     9     int n;
    10     int i;
    11     char temp;
    12     while(~scanf("%d",&n))
    13     {
    14         getchar();
    15         for(i=0;i<n*2;i++)
    16         {
    17             temp=getchar();
    18             if(temp!=' ')
    19                  data[(i+1)/2]=temp;
    20         }
    21         sort(data,data+n,greater<int>());
    22         for(i=0;i<n;i++)
    23         {
    24             if(i==0)
    25                 printf("%c",data[i]);
    26             else
    27                 printf(" %c",data[i]);
    28         }
    29         printf("\n");
    30     }
    31     return 0;
    32 }

  • 相关阅读:
    vue+webpack搭建项目基础架构
    vue入门学习篇——父子组件通信
    vue入门学习篇——数据双向绑定原理及简单实现
    vue入门学习篇——挂载点、实例、模版之间的关系
    毫秒转成天、小时、分钟、秒
    可执行jar包的MANIFEST.MF
    fsck系统修复
    HDFS, YARN, HBase, Hive, ZooKeeper端口说明
    解压 tar zxvf 文件名.tar.gz 压缩 tar zcvf 文件名.tar.gz 目标名
    Linux学习笔记之RedHat Enterprise Linux 6.4 使用 Centos 6 的yum源问题
  • 原文地址:https://www.cnblogs.com/XBWer/p/2606183.html
Copyright © 2020-2023  润新知