`
CB-13
  • 浏览: 22423 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

六种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);



PS:

其中的qsort函数包含在<stdlib.h>的头文件里,strcmp包含在<string.h>的头文件里
分享到:
评论

相关推荐

    七种qsort排序方法

    《七种qsort排序方法详解》 在编程领域,排序是一项基本且重要的操作,尤其是在算法竞赛(ACM)中更是必不可少。C语言的标准库提供了一个名为`qsort`的通用排序函数,它允许用户自定义比较函数以适应各种类型的排序...

    七种qsort排序方法c++代码 排序算法模板

    以上是针对不同数据类型的qsort排序方法的C++代码模板。这些模板可以作为基础,根据实际需求进行调整和扩展。通过对这些示例的理解和实践,开发者能够更加熟练地掌握C++中qsort函数的使用技巧,并灵活应用于各种实际...

    qsort排序的七种方法

    以下是标题和描述中涉及的七种使用`qsort`排序的方法: 1. **对int类型数组排序**: 使用`qsort`对整型数组排序,比较函数`cmp`通过将void指针转换为int指针并进行减法操作来确定元素的相对顺序。 2. **对char...

    七种qsort排序

    标题:七种qsort排序 描述:本文详细介绍了七种使用C语言标准库函数`qsort()`进行排序的方法,适用于不同数据类型和复杂结构的排序需求。每种方法都提供了具体的示例代码,旨在帮助读者深入理解`qsort()`函数的使用...

    七种qsort排序方法~~~

    根据给定文件的信息,我们可以详细地探讨一下七种基于`qsort`函数的不同排序方法及其应用场景。`qsort`函数是C语言标准库中的一个通用排序函数,它使用快速排序算法来对数组进行排序。下面将详细介绍这七种排序方法...

    C语言qsort排序大全 多种数据类型的qsort

    在C语言中,`qsort`函数是标准库`&lt;stdlib.h&gt;`中提供的一种通用排序算法,它能够帮助我们对数组进行快速排序。本篇将深入探讨`qsort`的使用,包括其基本原理、参数解析、不同数据类型的排序以及在实际编程中的应用...

    sort 与qsort 使用方法 结构体多级排序 适合于acm竞赛

    经典的acm排序算法,轻松教你学会sort和qsort的使用方法。一个简单,一个比较繁杂,但是运行速度却相对来说较快。希望对大家有帮助,尤其是acm的同学。sort与qsort对结构体多级排序是非常有用的。

    sort,Qsort,归并排序三种排序方法的比较

    三种代码的一种简单比较,可以看出qsort是最快的

    C快速排序qsort

    在C语言中,`qsort`函数是标准库`stdlib.h`中提供的一种通用排序接口,用于实现快速排序或者其他类型的排序。 `qsort`函数的原型如下: ```c void qsort(void *base, size_t nel, size_t width, int (*compar)...

    qsort使用法和具体举例说明

    qsort 是一种快速排序算法,广泛应用于 C 语言编程中。它可以对数组中的元素进行排序,包括整数、字符、浮点数、结构体等类型的元素。下面是 qsort 使用法和具体举例说明: 函数原型 void qsort(void *base, size_...

    快速排序库函数qsort的调用细则

    快速排序库函数qsort是C标准库中的一种排序算法,用于对数组进行排序。qsort函数包含在头文件中,需要在函数头部加上#include以便调用。qsort函数有四个参数,分别是参与排序的数组名、元素个数、单个元素的大小和...

    C语言中qsort函数用法实例小结

    C语言中的`qsort`函数是用于对内存块中的元素进行排序的标准库函数,它包含在`&lt;stdlib.h&gt;`头文件中。`qsort`函数的使用非常灵活,可以处理不同数据类型的数据,包括基本类型如`int`、`char`、`double`以及结构体等...

    C库函数qsort七种使用方法示例

    C 库函数 qsort 七种使用方法示例 本文将对 C 库函数 qsort 进行详细的介绍,并提供七种使用方法示例,帮助 C 语言初学者快速掌握 qsort 函数的使用方法。 一、对 int 类型数组排序 qsort 函数可以对 int 类型...

    二维的qsort,根据其中任何一维进行快速排序

    本文主要探讨如何使用C语言中的`qsort`函数对一个包含多个元素的结构体数组进行排序,并以二维数组为例,详细介绍如何根据其中的一维进行排序。 #### 二、基础知识回顾 1. **结构体**: - 结构体是一种用户自定义...

    qsort/快速排序C/C++实现

    ### qsort/快速排序C/C++实现 #### 知识点概述 本篇文章将详细介绍一个用C语言编写的快速排序算法实现。快速排序是一种高效的排序算法,在平均情况下具有O(n log n)的时间复杂度,因此在实际应用中非常广泛。本...

    真正的qsort结构体多级排序,不是某个骗子qsort多级排序

    某个CSDN里上传的qsort结构体多级排序的太让我气愤了,辛辛苦苦赚的积分第一次下载就被这种东西给骗了,不能运行不能看,又不好,太可恶了。。。 这份代码OJ测试通过,能看能运行,有释义,不要再被那个说啥子ACM必...

    qsort总结.pdf快速排序总结qsort总结.pdf快速排序总结

    快速排序是一种高效的排序算法,由英国计算机科学家托尼·霍尔于1960年提出。它利用分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。`qsort`是C语言标准库中的一个通用排序函数,可以在...

Global site tag (gtag.js) - Google Analytics