用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 }