`

使用qsort函数快速排序数组

    博客分类:
  • C++
阅读更多
main.c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include "tQsort.h"
#define NUM 10
int main(){
         double arr[NUM];
fillArray(arr, NUM);
printf("before sort:\n");
showArray(arr, NUM);

qsort(arr, NUM, sizeof(double), sortArray);

printf("after sort:\n");
showArray(arr, NUM);

return 0;
}

tQort.c文件
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define TYPE double

/************************************************************************/
/*generator random number to fill double array                          */
/************************************************************************/
void fillArray(double arr[], int size)
{
int index;

/*Seed the random-number generator with the current time so that
the numbers will be different every time we run.*/
srand((unsigned)time(NULL));

for (index=0; index<size; index++)
{
arr[index] = (double)rand() / (RAND_MAX + 0.1);
}
}

void showArray(double arr[], int size)
{
int index = 0;
for(; index<size; index++)
{
printf("%9.4f", arr[index]);
if(index%6 == 5)
{
printf("\n");
}/*
if(index%6 != 0)
{
printf("\n");
}*/
}
printf("\n");
}

int sortArray(const void *p1, const void *p2)
{
const TYPE *a1 = p1; //得到正确类型的指针
const TYPE *a2 = p2;

if(*a1 > *a2)
{
return 1;  //返回1时升序排序,返回-1时降序排序
}
else if(*a1 == *a2)
{
return 0;
}
else
{
return -1; //返回-11时降序排序,返回1时升序排序
}
}
思考:如何排序结构体数组(如struct name staff[100])
提示:修改比较函数,使用strcmp函数
分享到:
评论

相关推荐

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

    - `base`:指向待排序数组的指针。 - `num`:数组中元素的个数。 - `size`:数组中每个元素的大小(以字节为单位)。 - `compar`:一个比较函数指针,该函数用于确定数组中两个元素的相对顺序。 3. **比较函数*...

    qsort函数常见用法

    qsort 函数的实现原理是使用快速排序算法,通过递归地将数组分成两个部分,然后对每个部分进行排序,最终将整个数组排序。 在使用 qsort 函数时,需要提供一个比较函数 `cmp`,该函数用于比较两个元素的大小。比较...

    qsort函数具体介绍

    它是快速排序(Quicksort)算法的一种实现,能够高效地对数组进行排序。下面是 qsort 函数的详细介绍。 一、qsort 函数的基本用法 qsort 函数的原型是 `void qsort(void *base, size_t nmemb, size_t size, int (*...

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

    在上面的代码中,我们首先定义了一个 int 类型的数组 num,然后定义了一个比较函数 cmp,该函数用于比较两个 int 类型的元素 finally,我们使用 qsort 函数对 num 数组进行排序。 二、对 char 类型数组排序 qsort ...

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

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

    通讯录排序代码整理与源码

    使用qsort函数来对结构体数组进行快速排序,提高效率和简化代码。 使用atoi函数来将字符串形式的生日转换为整数形式,便于比较和计算年龄。 使用结构体数组来存储通讯录的信息,方便进行排序和输出。 使用qsort函数...

    qsort函数常见用法v1.1

    `qsort`函数是C语言标准库中用于通用数组排序的一个强大工具,它使用快速排序算法,提供了高度灵活的排序机制。`qsort`的原型在`&lt;stdlib.h&gt;`头文件中定义,其通用性使得它可以处理任何类型的数据,只要用户能够提供...

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

    快速排序库函数qsort的调用细则 快速排序库函数qsort是C标准库中的一种排序算法,用于对数组进行排序。qsort函数包含在头文件中,需要在函数头部加上#...接着,使用qsort函数对数组进行排序,最后将排序结果输出。

    C快速排序qsort

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

    qsort排序的七种方法

    在使用`qsort`时,需要提供四个参数:要排序的数组、数组元素个数、单个元素的大小以及一个比较函数。比较函数用于定义排序的标准,它接受两个void指针作为参数,并返回一个整数值,表示第一个参数应该在第二个之前...

    快速排序函数代码

    在本篇文章中,我们将深入探讨一个关于快速排序算法的具体实现——通过模板函数的形式来完成排序任务。快速排序是一种高效的排序算法,在实际应用中被广泛采用。该算法的主要优点在于其速度较快,平均时间复杂度为O...

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

    ### 快速排序(qsort)总结与应用案例详解 #### 一、引言 快速排序是一种高效的排序算法,由英国计算机科学家托尼·霍尔于1960年提出。它利用分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子...

    qsort快排函数源代码

    它使用了快速排序算法作为其内部实现,因此被称为“快速排序”或简称“快排”。本文将详细介绍`qsort`函数的工作原理及其在C语言中的实现方式。 #### 二、`qsort`函数简介 `qsort`函数的基本调用格式如下: ```c ...

    快速排序

    - **功能**:这是快速排序的核心函数,负责将数组分割成两部分,左边的元素都小于或等于枢轴(pivot),右边的元素都大于枢轴。 - **实现**:首先选择一个元素作为枢轴(本例中选择第一个元素),然后遍历数组,移动...

    最新sort函数的用法.docx

    这意味着 qsort 函数的排序速度非常快,即使对非常大的数组也可以快速排序。 结论 sort 函数是 C 语言中的一种常用的排序函数,可以对数组进行排序。通过定义比较函数,可以对不同的数据类型进行排序。本文介绍了...

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

    在使用qsort函数时,需要提供三个参数:数组的首地址、数组元素的个数、每个元素的大小、比较函数的地址。比较函数是qsort函数的核心,它决定了排序的规则。 在本文中,我们使用了三个不同的比较函数:compare、...

    数据结构 快速排序 输出每一趟结果

    根据给定文件的信息,我们可以总结出以下关于“数据结构 快速排序 输出每一趟结果”的知识点: ...通过以上内容,我们可以全面了解如何使用C语言实现快速排序,并且能够理解输出每一趟排序结果的重要性及其应用场景。

    qsort C语言版

    `qsort` 是一个在 C 语言标准库 `&lt;stdlib.h&gt;` 中定义的函数,用于对数组进行快速排序。它是一个非常强大的工具,可以用来对多种数据类型进行排序,包括基本数据类型如 `int`, `char`, `double` 以及复杂数据类型如...

    C中qsort快速排序使用实例

    `qsort` 实现了快速排序算法,这是一种高效的比较排序算法,平均时间复杂度为O(n log n)。下面我们将详细介绍`qsort`函数的使用及其原理。 `qsort`函数原型如下: ```c void qsort(void *base, size_t num, size_t...

    C 快速排序简介及用法

    结合提供的文件"qsort函数的使用.doc"和"C函数qsort的简介和用法_新手入门.ppt",你可以深入学习`qsort`的具体使用示例,以及如何编写`compar`函数,以便在实践中更好地运用快速排序算法。这两个文件会提供更多的...

Global site tag (gtag.js) - Google Analytics