给定一个长度为n 的数列,将这个数列按从小到大的顺序排序

给定一个长度为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;
}

```