给定一个长度为n 的数列,将这个数列按从小到大的顺序排序
#include <stdio.h>
void sorts(int *a,int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
int main()
{
int a[200],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sorts(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
qsort
qsort函数一步到胃,这是C语言库函数自带的函数,直接用很方便,我这里以一个有限数组为例,比较函数 compare 部分这里是从小到大排,要想从大到小排就改成 return d-c 即可
```c
#include<stdlib.h>
int compare(const void* a,const void* b)
{
int* p = (int*)a;
int* q = (int*)b;
int c = *p;
int d = *q;
return c - d;
}
int main()
{
int i = 0;
int arr[6] = { 1,4,5,8,2,3 };
qsort(arr, 6, sizeof(arr[0]), compare);
for (i = 0; i < 6; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
```