一、对int类型数组排序
C/C++ code
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类型)
C/C++ code
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类型数组排序(特别要注意)
C/C++ code
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);
四、对结构体一级排序
C/C++ code
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);
五、对结构体二级排序
C/C++ code
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);
六、对字符串进行排序
C/C++ code
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
C/C++ code
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++代码 排序算法模板
七种qsort排序方法,word文档,非常详细。
很好的一个东西,希望大家踊跃下载,很好的
C++中自定义结构体选择一个键值 调用sort qsort排序
qsort的具体实现,有注释。 排序函数:int findpivot(int i, int j, int a[]); void swap(int l, int r, int a[]); int partition(int i, int j, int pivot, int a[], int pivotindex); void quicksort(int i, int j...
某个CSDN里上传的qsort结构体多级排序的太让我气愤了,辛辛苦苦赚的积分第一次下载就被这种东西给骗了,不能运行不能看,又不好,太可恶了。。。 这份代码OJ测试通过,能看能运行,有释义,不要再被那个说啥子ACM必...
在c++中qsort()排序函数的使用qsort函数应用大全,在同样的元素和同样的比较条件下,sort()的执行速度都比qsort()要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。
C库函数qsort的实现,对学习指针有极大的帮助。可以实现任意类型数据的排序。
鉴于初学C语言或C++时对快速排序算法的了解不够深入,在此上传快速排序的C语言实现代码,该实现代码具有模块化特点,并且在代码中写了注释,并在调试过程中易出错的关键地方做了标注;此外,在代码实现中添加了良好...
//qsort的比较函数 int cmp(const void * a, const void * b) { return (*(Book*)a).num > (*(Book*)b).num ? 1 : 0; } //sort的比较函数 bool cmp_(Book a, Book b) { return a.num > b.num; } int main() { ...
在学习C++ STL的sort函数,发现C中也存在一个qsort快速排序,要好好学习下C的库函数啊
C++通用排序算法,只需传递比较函数和一些简单的参数就能实现排序,类似API里面的qsort
Qt5自带QCollator和QLocale库,结合qSort()函数,在VS2015开发工具下实现排序,支持中文英文排序,其中中文按照首字母排序,也可以设置按找笔画排序
应用c++库函数 qsort实现二维数组排序,即 举例:排序前:{{1,1,0} {3,0,2}, {1,1,1}, {1,2,0}} 排序后:{{1,1,0}, {1,1,1}, {1,2,0}, {3,0,2}}
简介:自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真
上述资源是位与、选择、冒泡、插入、qsort算法的实例,在vc6.0下可以编译并得到预期结果。
1、讲解C语言标准函数qsort快速排序的功能和应用; 2、讲解C语言标准函数bsearch二分查找的功能和应用;
C++中的快速排序,Qsort函数详细详解。并且有各种例子
c++快排,需要的朋友可以看看,其实我是为了拿分的
C默认是对数组进行排序, C++是对一个序列进行排序, Go则更宽泛一些,待排序的可以是任何对象, 虽然很多情况下是一个slice(分片, 类似于数组),或是包含 slice 的一个对象。 排序(接口)的三个要素: 1、待排序...