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 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值