`
ssun125
  • 浏览: 44651 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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 与sort 的比较

    5. 对结构体二级排序: ```cpp struct In { int x; int 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 ...

    c++ qsort 与sort 对结构体排序实例代码

    //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() { ...

    sort与qsort1

    `sort` 和 `qsort` 是两种常用的排序函数,在 C++ 编程中,它们用于对数据进行排序。本文将详细介绍这两个函数的区别、使用场景以及它们在处理不同数据类型时的特点。 1. `sort` `sort` 函数是 C++ 标准库中的一个...

    最新sort函数的用法.docx

    sort 函数的用法 在计算机科学中,排序是指将一组数据按照一定的顺序排列的过程。...本文介绍了对 int 类型数组、char 类型数组和结构体数组的排序,希望能够帮助读者更好地理解 sort 函数的用法。

    sort函数的常见用法用法

    sort 函数和 qsort 函数是两种常用的排序函数,它们可以对数组进行排序,时间复杂度都为 n*log2(n)。sort 函数可以使用自定义的比较函数,而 qsort 函数需要使用函数指针作为第三参数。排序是 ACM 题中的一种常用的...

    七种qsort排序方法

    5. **对结构体数组的二级排序** 如果结构体中有多个字段需要参与排序,可以先按主要字段排序,再按次要字段排序。例如,结构体`In`有`x`和`y`两个`int`字段,先按`x`排序,`x`相同时按`y`降序排序。 6. **对字符串...

    C语言快速排序函数用法(qsort)

    C语言快速排序函数用法(qsort) C语言中的快速排序函数qsort是C标准库中的一部分,提供了对数...* 了解如何使用qsort函数对各种类型的数组进行排序。 通过学习qsort函数,可以提高自己的编程技能和解决问题的能力。

    七种快速排序算法

    5. **对结构体二级排序**: 对于结构体数组的二级排序,例如结构体`In`有两个整型成员`x`和`y`,我们可以首先根据`x`排序,当`x`相同时,根据`y`的值进行反向排序。 6. **对包含字符串的结构体数组排序**: 如果...

    ACM模板

    【ACM模板】涉及到的主要知识点是C语言中的`qsort()`函数和C++中的`sort()`函数,以及如何根据不同的数据类型和结构体属性进行排序。`qsort()`是C标准库提供的一种通用排序算法,而`sort()`是C++标准库中的一个模板...

    C++中的Qsort

    在C++编程领域,`qsort()`与`sort()`函数是处理数据排序的两个重要工具。虽然`qsort()`源自C语言,但其在C++中同样有着广泛的应用;而`sort()`则是C++标准模板库(STL)的一部分,提供了更高级、更灵活的排序机制。 #...

    sort函数.docx

    总结起来,`std::sort`是C++中用于排序的标准函数,它提供了灵活的排序方式,可以处理各种类型的数据,而`qsort`则是C语言中的排序函数。两者都允许自定义比较函数,以满足不同的排序需求。在实际编程中,选择合适的...

    【c语言中sort的用法详解】c语言sort.docx

    `sort`函数用于对序列进行排序,它提供了两种版本: 1. 默认版本的`sort`函数: ```cpp template void sort(RandomAccessIterator first, RandomAccessIterator last); ``` 这个版本的`sort`对范围`[first, ...

    结构体实现学生成绩管理系统(精编版).pdf

    6. `sort()`函数利用C语言库函数`qsort`对学生成绩进行排序。`cmp`函数作为`qsort`的比较函数,用于比较两个学生的总分。如果总分相同,则进一步比较单科成绩,以确定排名。排序完成后,`output()`函数将按照名次...

    学生成绩标准管理系统C语言样本(共28页).docx

    该函数使用链表来存储学生信息,并使用 `qsort` 函数来对学生记录进行排序。 删除函数 函数 `delete()` 用于删除指定的学生记录。该函数使用链表来存储学生信息,并使用 `free` 函数来释放内存。 查找函数 函数 ...

    C++算法之通用排序

    C++ Standard Template Library (STL) 提供了一个名为`std::sort`的函数,它可以对任何随机访问迭代器范围内的元素进行排序。`std::sort`的原型如下: ```cpp template, class Compare > void sort( RandomIt ...

    C语言课设填空题考试系统

    该模块使用qsort函数对试题信息进行排序。 删除模块(del函数)负责删除指定的试题信息。该模块使用remove函数将指定的试题信息从"e:\\qize.txt"文件中删除。 修改模块(amend函数)负责修改试题信息。该模块使用...

    C_C++语言中函数指针的深入分析与应用

    在这个例子中,`sort`函数接收一个比较函数作为参数,这样可以根据不同的数据类型和排序需求使用不同的比较函数。 ##### 3. 简单的消息映射 消息映射是另一种常见的应用场景,特别是在GUI编程中。通过将一系列事件...

    C语言实现一个通讯录

    使用`qsort`函数对联系人列表进行排序,这里定义了一个名为`cmp`的比较函数,用于比较两个联系人结构体的`name`字段。`sort`函数调用`qsort`,按照名字对整个通讯录进行升序排列。 代码中定义了一个名为`contact`...

    c语言实现职工管理系统方案.doc

    C语言提供了`qsort`函数来进行通用的排序,但在这个例子中,可能是通过自定义比较函数实现的排序算法。 删除职工信息的函数(`del()`)需要找到指定的职工对象并从链表中移除。修改职工信息的函数(`modify()`)则...

    ACM C语言 习题

    在本题中,首先对字典(一个包含英文和法文对应关系的结构体数组)进行`qsort()`排序,然后使用`bsearch()`来查找目标字符串,提高查询效率。 2. **快速排序(Quick Sort)**:`qsort()`函数用于对数组进行快速排序...

Global site tag (gtag.js) - Google Analytics