1.Sort
用法:
前面需要加:
#include<algorithm>
using namespace std;
默认为升序排序,
举例用法
:
int main()
{
int array[100],i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&array[i]);
sort(array,array+n);
for(i=0;i<n;i++)
printf("%d ",array[i]);
printf("\n");
}
}
可以
自己编写Compare函数来使得它进行降序排列
bool compare(int a,int b)
{
return a<b; //升序排列,如果改为return a>b,则为降序
}
int main()
{
int array[100],i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&array[i]);
sort(array,array+n);
for(i=0;i<n;i++)
printf("%d ",array[i]);
printf("\n");
}
}
2.Quick_Sort
qsort ( 数组名 ,元素个数,元素占用的空间(sizeof),比较函数) 比较函数是一个自己写的函数 遵循 int com(const void *a,const void *b) 的格式。当a b关系为 > < = 时,分别返回正值 负值 零 (或者相反)。使用a b 时要强制转换类型,从void * 转换回应有的类型后,进行操作。 数组下标从零开始,个数为N, 下标0-(n-1)。
用法举例:1.升序
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int Compare(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int array[100],i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&array[i]);
qsort(array,n,sizeof(int),Compare);
for(i=0;i<n;i++)
printf("%d ",array[i]);
printf("\n");
}
}
2.降序
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int Compare(const void *a,const void *b)
{
return *(int*)b-*(int*)a;
}
int main()
{
int array[100],i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&array[i]);
qsort(array,n,sizeof(int),Compare);
for(i=0;i<n;i++)
printf("%d ",array[i]);
printf("\n");
}
}