七种qsort排序方法
<本文中排序都是采用的从小到大排序>
一、对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;
}
PS:
其中的qsort函数包含在<stdlib.h>的头文件里,strcmp包含在<string.h>的头文件里
分享到:
相关推荐
以上是针对不同数据类型的qsort排序方法的C++代码模板。这些模板可以作为基础,根据实际需求进行调整和扩展。通过对这些示例的理解和实践,开发者能够更加熟练地掌握C++中qsort函数的使用技巧,并灵活应用于各种实际...
根据给定文件的信息,我们可以详细地探讨一下七种基于`qsort`函数的不同排序方法及其应用场景。`qsort`函数是C语言标准库中的一个通用排序函数,它使用快速排序算法来对数组进行排序。下面将详细介绍这七种排序方法...
标题:七种qsort排序 描述:本文详细介绍了七种使用C语言标准库函数`qsort()`进行排序的方法,适用于不同数据类型和复杂结构的排序需求。每种方法都提供了具体的示例代码,旨在帮助读者深入理解`qsort()`函数的使用...
以下是标题和描述中涉及的七种使用`qsort`排序的方法: 1. **对int类型数组排序**: 使用`qsort`对整型数组排序,比较函数`cmp`通过将void指针转换为int指针并进行减法操作来确定元素的相对顺序。 2. **对char...
在C语言中,`qsort`函数是标准库`<stdlib.h>`中提供的一种通用排序算法,它能够帮助我们对数组进行快速排序。本篇将深入探讨`qsort`的使用,包括其基本原理、参数解析、不同数据类型的排序以及在实际编程中的应用...
经典的acm排序算法,轻松教你学会sort和qsort的使用方法。一个简单,一个比较繁杂,但是运行速度却相对来说较快。希望对大家有帮助,尤其是acm的同学。sort与qsort对结构体多级排序是非常有用的。
C 库函数 qsort 七种使用方法示例 本文将对 C 库函数 qsort 进行详细的介绍,并提供七种使用方法示例,帮助 C 语言初学者快速掌握 qsort 函数的使用方法。 一、对 int 类型数组排序 qsort 函数可以对 int 类型...
三种代码的一种简单比较,可以看出qsort是最快的
在C语言中,`qsort`函数是标准库`stdlib.h`中提供的一种通用排序接口,用于实现快速排序或者其他类型的排序。 `qsort`函数的原型如下: ```c void qsort(void *base, size_t nel, size_t width, int (*compar)...
qsort 是一种快速排序算法,广泛应用于 C 语言编程中。它可以对数组中的元素进行排序,包括整数、字符、浮点数、结构体等类型的元素。下面是 qsort 使用法和具体举例说明: 函数原型 void qsort(void *base, size_...
快速排序库函数qsort是C标准库中的一种排序算法,用于对数组进行排序。qsort函数包含在头文件中,需要在函数头部加上#include以便调用。qsort函数有四个参数,分别是参与排序的数组名、元素个数、单个元素的大小和...
C语言中的`qsort`函数是用于对内存块中的元素进行排序的标准库函数,它包含在`<stdlib.h>`头文件中。`qsort`函数的使用非常灵活,可以处理不同数据类型的数据,包括基本类型如`int`、`char`、`double`以及结构体等...
在本文中,我们将讨论七种使用`qsort`函数实现快速排序的方法。 1. **对整型(int)数组排序**: 当处理整型数组时,`qsort`函数需要一个比较函数`cmp`来确定元素的相对顺序。在这个例子中,`cmp`函数比较两个整数的...
本文主要探讨如何使用C语言中的`qsort`函数对一个包含多个元素的结构体数组进行排序,并以二维数组为例,详细介绍如何根据其中的一维进行排序。 #### 二、基础知识回顾 1. **结构体**: - 结构体是一种用户自定义...
### qsort/快速排序C/C++实现 #### 知识点概述 本篇文章将详细介绍一个用C语言编写的快速排序算法实现。快速排序是一种高效的排序算法,在平均情况下具有O(n log n)的时间复杂度,因此在实际应用中非常广泛。本...
某个CSDN里上传的qsort结构体多级排序的太让我气愤了,辛辛苦苦赚的积分第一次下载就被这种东西给骗了,不能运行不能看,又不好,太可恶了。。。 这份代码OJ测试通过,能看能运行,有释义,不要再被那个说啥子ACM必...