sort和qsort函数对结构体的二级排序

原创 2012年03月25日 20:14:12

const int N=100010;

结构体:

struct POINT{

        int  x;

        int  y;

};


POINT ap[N];

在c++中结构体不需要用struct POINT

1.qsort

头文件:stdlib

qsort函数调用时格式:

qsort(ap,n,sizeof(ap[0]),cmp);
n是比较元素的个数。

cmp函数:

                  int cmp(const void *a,const void *b)
                  {
                           POINT * p1 = (POINT*)a;
                           POINT * p2 = (POINT*)b;
                           if(p1->x != p2->x) return p1->x-p2->x;
                           return p1->y-p2->y;
                  }


2.sort

头文件:algorithm

sort函数调用时格式:

sort(ap,ap+n,cmp);
n是比较元素的个数。

cmp函数:

       

int cmp(POINT &a,POINT &b)
{
    if(a.x!=b.x) return a.x>b.x;
    return a.y>b.y;
}

记住cmp函数中返回表达式,一个是用“-”,另一个是用“>”。



关于qsort排序的一些心得

首先,排序的方法有很多。对于我们这些初学者来说,可以多懂一些、多学一些来懂一些其中的思想。其实只要完全融会贯通一个就够用了;我认为这个就是qsort排序,因为时间虽然比不上快排,但是计较稳定。其可以对...
  • y990041769
  • y990041769
  • 2012年12月20日 12:23
  • 7118

c笔记11---联合,枚举,堆 malloc,大/小端存储,二级指针,函数指针,qsort 排序,指针数组

1.    联合,通过联合可以使用不同的方式操作内存中同一段区域。     typedef union { 变量声明语句 } uni;     这里的每个变量具有排他性,计算机无法同时执行里面的变...
  • wolfsun3
  • wolfsun3
  • 2015年09月30日 16:36
  • 424

qsort结构体排序 (初学者必知)

重点: qsort函数包含在的头文件里,strcmp包含在的头文件里 首先,排序的方法有很多。对于我们这些初学者来说,可以多懂一些、多学一些来懂一些其中的思想。其实只要完全融会贯通一个就够用...
  • yisandezhuiqiu
  • yisandezhuiqiu
  • 2016年08月03日 11:09
  • 938

qsort sort 结构体排序

qosrt 头文件:
  • u014767460
  • u014767460
  • 2014年04月19日 12:00
  • 1257

qsort结构体排序 (初学者必知)

重点: qsort函数包含在的头文件里,strcmp包含在的头文件里 首先,排序的方法有很多。对于我们这些初学者来说,可以多懂一些、多学一些来懂一些其中的思想。其实只要完全融会贯通一个就够用...
  • yisandezhuiqiu
  • yisandezhuiqiu
  • 2016年08月03日 11:09
  • 938

qsort对多维数组和结构体的排序

多维数组对于malloc动态申请的多维数组(指针数组)以一个例子解析: 要求—— 打算操作一个数组,数组的每个元素是一个指针,指向2个元素的数组。元素的大小关系为先比较第一个元素,第一个元素相同比...
  • puppylpg
  • puppylpg
  • 2015年10月03日 14:12
  • 2400

使用qsort排序结构体数组,使用bsearch查询结构体数组

// 使用qsort排序结构体数组,使用bsearch查询结构体数组 //函数名:qsort //功  能:使用快速排序例程进行排序 //头文件:stdlib.h //用  法:void qsort(...
  • dgyanyong
  • dgyanyong
  • 2013年11月21日 11:31
  • 1870

qsort细节用法,double型的排序我竟然一直用错了~~~

转载:qsort细节用法,double型的排序我竟然一直用错了~~~  在对浮点或者double型的一定要用三目运算符,因为如果也使用整型那样的想减的话,如果是两个很接近的数则可能返回一个小...
  • aristolto
  • aristolto
  • 2015年11月16日 16:38
  • 1317

用Qsort排序链表的使用实例记录

要排序的是链表,记得上次排序结构体的时候本身创建的就是结构体数组所以空间连续可排。 但是链表是离散的,不能直接Qsort。 所以分配一个临时空间用来存储地址,然后排序地址再重新建立。 之所以记录...
  • u011497904
  • u011497904
  • 2015年01月18日 21:58
  • 1294

sort对结构体进行排序

std::sort()函数的功能很强大,且可以对类,结构体等元素进行排序。 首先来看看std中的快速排序算法sort的使用方法:   template void sort ( RandomAcc...
  • u012510648
  • u012510648
  • 2016年05月31日 15:00
  • 3264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sort和qsort函数对结构体的二级排序
举报原因:
原因补充:

(最多只允许输入30个字)