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 }

posted @ 2012-07-24 11:58  max_xbw  阅读(3678)  评论(0)    收藏  举报