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 }

  • 相关阅读:
    搭建自己的博客(三十一):为评论以及回复添加邮箱提醒
    gl-transitions 【68个转场效果图】
    frei0r-1.7.0 20191207-0d4b342 DLLs
    Win10资源管理器始终使用详细视图模式
    gcc posix sjij for MSYS 9.2.1+
    mingw32-gcc-9.2.1-i686-posix-sjlj-20190904-8ba5c53
    Newtonsoft.Json高级用法
    在线文档预览方案-office web apps
    我的前端学习历程
    我是怎么使用最短路径算法解决动态联动问题的
  • 原文地址:https://www.cnblogs.com/XBWer/p/2606183.html
Copyright © 2011-2022 走看看