一、对int类型数组排序
int num[100];
Sample:
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);
二、对char类型数组排序(同int类型)
char word[100];
Sample:
int cmp( const void *a , const void *b )
{
return *(char *)a - *(int *)b;
}
qsort(word,100,sizeof(word[0]),cmp);
三、对double类型数组排序(特别要注意)
double in[100];
int cmp( const void *a , const void *b )
{
return *(double *)a > *(double *)b ? 1 : -1;
}
qsort(in,100,sizeof(in[0]),cmp);
四、对结构体一级排序
struct In
{
double data;
int other;
}s[100]
//按照data的值从小到大将结构体排序,关于结构体内的排序关键数据data的类型可以很多种,参考上面的例子写
int cmp( const void *a ,const void *b)
{
return (*(In *)a)->data > (*(In *)b)->data ? 1 : -1;
}
qsort(s,100,sizeof(s[0]),cmp);
五、对结构体二级排序
struct In
{
int x;
int y;
}s[100];
//按照x从小到大排序,当x相等时按照y从大到小排序
int cmp( const void *a , const void *b )
{
struct In *c = (In *)a;
struct In *d = (In *)b;
if(c->x != d->x) return c->x - d->x;
else return d->y - c->y;
}
qsort(s,100,sizeof(s[0]),cmp);
六、对字符串进行排序
struct In
{
int data;
char str[100];
}s[100];
//按照结构体中字符串str的字典顺序排序
int cmp ( const void *a , const void *b )
{
return strcmp( (*(In *)a)->str , (*(In *)b)->str );
}
qsort(s,100,sizeof(s[0]),cmp);
七、计算几何中求凸包的cmp
int cmp(const void *a,const void *b) //重点cmp函数,把除了1点外的所有点,旋转角度排序
{
struct point *c=(point *)a;
struct point *d=(point *)b;
if( calc(*c,*d,p[1]) < 0) return 1;
else if( !calc(*c,*d,p[1]) && dis(c->x,c->y,p[1].x,p[1].y) < dis(d->x,d->y,p[1].x,p[1].y)) //如果在一条直线上,则把远的放在前面
return 1;
else return -1;
}
分享到:
相关推荐
C++中的快速排序,Qsort函数详细详解。并且有各种例子
C语言中的`qsort`函数是用于对内存块中的元素进行排序的标准库函数,它包含在`<stdlib.h>`头文件中。`qsort`函数的使用非常灵活,可以...熟练掌握`qsort`函数的使用,能极大地提高C语言编程的效率和代码的可复用性。
#### 基本用法 `qsort` 的原型为: ```c void qsort(void *base, size_t num, size_t width, int (*compare)(const void *, const void *)); ``` - `base`:指向待排序数组的指针。 - `num`:数组元素的个数。 - `...
C函数qsort的简介和用法_新手入门.ppt
### qsort函数详解与应用实例 #### 一、qsort函数概述 `qsort`是C语言中的标准库函数,用于对数组中的元素进行排序,它位于`<stdlib.h>`头文件中。...掌握其用法,对于C语言程序设计者而言,是必不可少的一项技能。
C语言中qsort函数的用法实例详解 C语言中的qsort函数是标准库中提供的一种排序算法,主要用于对数组进行排序。qsort函数的声明在...但是,需要正确地使用和理解qsort函数的原理和使用方法,以确保排序的结果正确。
总之,`qsort`函数为C语言程序员提供了一个强大且灵活的排序工具,掌握了它的使用方法,不仅能提高编程效率,还能在诸如ACM竞赛等场合发挥关键作用。通过深入理解和实践,可以发掘出更多高级用法,满足各种复杂场景...
`qsort`是C语言标准库中的一个函数,用于对数组进行快速排序。它提供了极大的灵活性,允许用户自定义比较函数来处理不同类型的数据。本文将详细介绍七种常见的`qsort`排序方法及其应用场景。 #### 二、基础知识 `...
`qsort`是C语言标准库中的一个强大排序函数,它提供了灵活的通用性,能够处理各种数据类型和复杂度的数据结构排序需求。`qsort`函数的核心优势在于其比较函数参数,这允许用户自定义排序逻辑,从而适用于广泛的场景...
总结起来,这个压缩包内容涉及了C++中的两种排序方法——`qsort`和`std::sort`,并提供了相应的源码实例,有助于学习和比较它们的用法和效率。通过分析和测试这些代码,开发者能够更好地选择适合自己项目需求的排序...
以下是标题和描述中涉及的七种使用`qsort`排序的方法: 1. **对int类型数组排序**: 使用`qsort`对整型数组排序,比较函数`cmp`通过将void指针转换为int指针并进行减法操作来确定元素的相对顺序。 2. **对char...
qsort 函数常见用法 qsort 函数是 C 语言标准库中的一种排序算法,用于对数组进行排序。它的原型如下: `void qsort(void *base, size_t num, size_t width, int (*cmp)(const void *, const void *))` 其中,`...
C语言快速排序函数用法...* 了解qsort函数的使用方法和参数。 * 了解比较函数的实现和使用。 * 了解如何使用qsort函数对各种类型的数组进行排序。 通过学习qsort函数,可以提高自己的编程技能和解决问题的能力。
- 参数为函数指针的函数可以接受另一个函数作为参数,这种函数通常称为高阶函数,C语言中的qsort函数就是这样的例子。 - 递归函数的定义和实现,例如示例中的int max(int x, int y){ auto int m; m = x > y ? x : y;...
标题:七种qsort排序 描述:本文详细介绍了七种使用...掌握其使用方法,尤其是编写合适的比较函数,是高效编程的关键技能之一。通过上述示例,读者应能充分理解并应用`qsort()`于实际问题中,提高程序的性能和功能。