zoukankan      html  css  js  c++  java
  • 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 }

  • 相关阅读:
    AfxMessageBox详细使用说明
    动态规划: 求一个一维整数数组的最大子序列和
    常见HTTP状态码
    PHP 基础系列(三) 【转】PHP 函数实现原理及性能分析
    empty() isset() isnull() 比较
    isset() 与 array_key_exists() 比较
    PHP基础系列(二) PHP数组相关的函数分类整理
    PHP基础系列(一) PHP字符串相关的函数分类整理
    linux df 命令
    grep 同时满足多个关键字和满足任意关键字
  • 原文地址:https://www.cnblogs.com/XBWer/p/2606183.html
Copyright © 2011-2022 走看看