C语言自带的快速排序算法

头文件:<stdlib.h>
函数名称: qsort

函数样式:
qsort(待排序数组,排序数组长度,类型长度,排序方式);

参数解释:

  1. 待排序数组:被排列数组,比如整型数组a[100]
  2. 排序数组长度:比如有20个被排序数字。
  3. 类型长度:可以用sizeof(a[0]) 表示。
  4. 排序方式:有升序排序和降序排序两种,以函数方式传递。
    排序方式代码:
int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int *)b;//这是从小到大排序,若是从大到小改成: return *(int *)b-*(int *)a;
}

代码示例:

#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int *)b;//这是从小到大排序,若是从大到小改成: return *(int *)b-*(int *)a;
}
int main()
{
    int a[100];
    int n;
    scanf("%d",&n);//n代表数组中有几个数字
    int i;
    for(i=1;i<=n;i++)
        scanf("%d",&a[i-1]);
    qsort(a,n,sizeof(a[0]),cmp);//(数组,需要排序的数字个数,单个数字所占内存大小,比较函数)
     for(i=1;i<=n;i++)
        printf("%d ",a[i-1]);
    return 0;
}

代码来源:https://www.cnblogs.com/rjgcs/p/5645791.html

发布了1 篇原创文章 · 获赞 0 · 访问量 7

猜你喜欢

转载自blog.csdn.net/weixin_43773075/article/details/104214566