C语言自带的快速排序(qsort)函数使用方法

感觉打快排太慢了,找到了c语言自带的函数。这函数用起来没c++的方便,不过也够了。

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

不多说,上代码:

#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;
}

  

时间: 2024-12-06 01:25:13

C语言自带的快速排序(qsort)函数使用方法的相关文章

qsort函数、sort函数 (精心整理篇)

先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有多个重复值的数组来说,基本快速排序的效率较低,且不稳定).集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决排序这个问题.所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分. 具体介绍:-^^ void qsort( void *base, size_t n

qsort函数、sort函数【转】

http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有多个重复值的数组来说,基本快速排序的效率较低,且不稳定).集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决排序这个问题.所谓三路划分,是指把数组划

qsort函数、sort函数 (精心整理篇)(转载)

qsort函数.sort函数 (精心整理篇) 先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有多个重复值的数组来说,基本快速排序的效率较低,且不稳定).集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决排序这个问题.所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分. 具体介绍:-^^ void qsor

qsort函数、sort函数

先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有多个重复值的数组来说,基本快速排序的效率较低,且不稳定).集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决排序这个问题.所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分. 具体介绍:-^^ void qsort( void *base, size_t n

qsort函数以及sort函数使用方法

?? sort函数的使用方法 做ACM题的时候,排序是一种常常要用到的操作. 假设每次都自己写个冒泡之类的O(n^2)排序,不但程序easy超时,并且浪费宝贵的比赛时间,还非常有可能写错. STL里面有个sort函数,能够直接对数组排序,复杂度为n*log2(n).使用这个函数.须要包括头文件. 这个函数能够传两个參数或三个參数. 第一个參数是要排序的区间首地址,第二个參数是区间尾地址的下一地址.也就是说.排序的区间是[a,b).简单来说,有一个数组int a[100].要对从a[0]到a[99

C语言中使用系统自带的快排函数

题目 1015. 德才论 (25) 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人." 现给出一批考生的德才分数,请根据司马光的理论给出录取排名. 输入格式: 输入第1行给出3个正整数,分别为:N(<=105),即考生总数:L(>=60),为录取最低分数线,即德分和才分均不低于L的考生才有资格被考虑录取

C语言qsort函数用法

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

qsort函数

C语言有自有的qsort函数. 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 原型: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参数: 1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序 这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型. #include<s

qsort()函数(C)

qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序.排序之后的结果仍然放在原数组中.使用qsort函数必须自己写一个比较函数. 函数原型: void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) ): base为初始地址,num为要进行排序元素个数,size为每个元素的大小,最后为必较函数 i