C语言利用qsort()函数实现排序

引用#include<stdlib.h>头文件

qsort()括号里面有4个参数
第一个参数是将要排序的数组名array;
第二个参数是将要排序的数量n;
第三个参数是每个要排序的参数的大小xizeof(array[o]);
第四个参数是自己写的一个比较函数comp;

若排序的是int类型的数组

升序:

int comp(const void*a,const void*b)//用来做比较的函数。
{
    return *(int*)a - *(int*)b;
}

降序:

int comp(const void*a,const void*b)//用来做比较的函数。
{
    return *(int*)b - *(int*)a; //降序
}

若排序的是结构体数组,假定结构体node

typedef struct{
    int a; int b;

}node;

qsort(a,n,sizeof(node),comp)

int comp(const void*x, const void*y)
{
    return ((*(node*)y).a) - ((*(node*))x).a);
}

原文地址:https://www.cnblogs.com/Hqx-curiosity/p/12204085.html

时间: 2024-08-02 01:13:43

C语言利用qsort()函数实现排序的相关文章

C语言的qsort函数

学了这么久都不知道C语言有这个函数(其实是因为基本没写过C,除了学程序设计的时候..) qsort 的函数原型是void __cdecl qsort ( void *base, size_t num, size_t width, int (__cdecl *comp)(const void *, const void* ) ) 其中base是排序的一个集合数组,num是这个数组元素的个数,width是一个元素的大小,comp是一个比较函数.默认从小到大. 其中调用的算法是快速排序,并且是优化过的

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体

C语言qsort函数算法性能测试

对于该算法的复杂性.一个直接的方法是测量的一定量的算法级数据的执行时间的感知. 随着C语言提供qsort对于示例.随着100一万次的数据,以测试其计算量.感知O(nlg(n))时间成本: C码如下面: #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 1000000 //int (*Comp)(const void *,const void *) int compare(const vo

【电话号码排序--简单 qsort函数】

Phone List Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 359  Solved: 79 [Submit][Status][Discuss] Description Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let's say the phone cat

利用标准库中sort函数进行排序

//1.利用sort进行由小到大排序: #include<stdio.h> #include<algorithm> using namespace std; int main() { int a[10],i; for (i=0;i<10;i++) scanf("%d",&a[i]); sort(a,a+10); for (i=0;i<10;i++)printf("%d ",a[i]); return 0; } //2.利用

【JavaScript】利用sort()函数与文件碎片实现表格的前端排序,兼容IE6原生态

表格排序在网页的应用也很多,尤其是一些信息系统输出一个密密麻麻的表格给人看,客户肯定会提出表格排序的要求.很多人定式思维地认为表格的排序一定要通过数据库后端进行交互,使用带order by asc/desc的语句去实现,然后再利用ajax似乎很完美似得.其实根本就不用与数据库打交道.在前端给出任意一个表格,都能够利用sort()函数与文件碎片实现表格的前端排序.在jquery里面是有一个advanceTable的插件做这件事,但是这个插件相当不好的是什么呢?与平常的插件一样,代码写得天花龙凤,没

C语言qsort函数用法

qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. 这就是qsort函数.它是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n) 功能: 使用快速排序例程进行排序 头文件:stdlib.h 用法:  void qsort(void* base,size_t num,size_t width,in

3203 数组做函数参数----排序函数--C语言版

3203: 数组做函数参数----排序函数--C语言版 时间限制: 1 Sec  内存限制: 128 MB提交: 253  解决: 151[提交][状态][讨论版][命题人:smallgyy] 题目描述 定义一个函数来完成对参数数组中元素的排序工作,函数声明如下: void sort(int array[ ]);//该函数完成对array数组的排序工作 在以下程序的基础上,完成对sort函数的定义,提交时,只提交sort函数的定义即可. #include <stdio.h> void sort

3204: 数组做函数参数--排序函数2--C语言

3204: 数组做函数参数--排序函数2--C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 211  解决: 143[提交][状态][讨论版][命题人:smallgyy] 题目描述 定义一个函数来完成对参数数组中元素的排序工作,函数声明如下: void sort(int array[ ],int n);//该函数完成对array数组的前n个元素的排序工作 在以下程序的基础上,完成对sort函数的定义,提交时,只提交sort函数的定义即可. #include <stdio.h >