qsort是一个库函数

基于快速排序算法实现的一个排序的函数

语法

void qsort(
   void *base,
   size_t number,
   size_t width,
   int(*cmp)( const void* e1 , const void* *e2)
);

参数

base  

目标数组的函数。

number

元素中的数组大小。

width

元素大小(字节)。

cmp

指向用户提供的例程的指针比较两个数组元素,并返回指定它们关系的值。

注解

  qsort 在排序过程中一次或多次调用 cmp例程,并将指针传递给每个调用中的两个数组元素。 如果 cmp 表示两个元素相同,则它们在生成的排序数组中的顺序是

数组按比较函数中定义的升序进行排序。 若要以降序对数组进行排序,请反转比较函数中的“大于”和“小于”的意义,即 e1和e2调换

比较函数返回值

说明

<0 e1<e2
0 e1=e2
>0 e1>e2

规定

头文件    <stdlib.h>

示例

1,模仿qsort的功能实现一个通用的冒泡排序

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>void print_arr(int arr[], int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", arr[i]);}
}
int cmp_int(const void* e1, const void* e2)
{return (*(int*)e1 - *(int*)e2);
}void test2()
{int arr[] = { 9,8,7,6,5,4,3,2,1,0 };//排序为升序int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), cmp_int);print_arr(arr, sz);
}int main()
{test2();return 0;
}void qsort(void* base, size_t num, size_t width, int(*cmp)(const void* e1, const void* e2));

2.使用库函数,qsort排序各种类型的数据

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stu
{char name[20];int age;double score;
};//int cmp_stu_by_age(const void* e1, const void* e2)
//{
//  return ((struct stu*)e1)->age - ((struct stu*)e2)->age;
//}int cmp_stu_by_name(const void* e1, const void* e2)
{return strcmp( ((struct stu*)e1)->name , ((struct stu*)e2)->name );
}void test3()
{struct stu arr[3] = { {"zhangsan",20,55.5},{"lisi",30,88.0},{"zhaowu",10,90.0} };int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), cmp_stu_by_name);}void swap(char* buf1, char* buf2, int width)
{int i = 0;for (i = 0; i < width; i++){char tmp = *buf1;*buf1 = *buf2;*buf2 = tmp;buf1++;buf2++;}
}int main()
{test3();return 0;
}
void qsort(void* base, size_t num, size_t width, int(*cmp)(const void* e1, const void* e2));

库函数 qsort 的用法相关推荐

  1. C语言,库函数中qsort的用法,及解释

    C语言库函数qsort的使用 目录 C语言库函数qsort的使用 qsort简介 原理: 函数原形及逐步分析 一:格式 二:分段解析 代码示例 总结 qsort简介 大家都知道冒泡排序,但是却排序有一 ...

  2. C语言标准库函数qsort( )——数据排序

    大家好!我是保护小周ღ,本期为大家带来的是深度解剖C语言标准库函数 qsort(),qsort()函数他可以对任意类型的数据排序,博主会详细解释函数使用方法,以及使用快速排序的左右指针法模拟实现函数功 ...

  3. qsort函数用法详解

    qsort()函数用法详解 limabean 本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利. 1.qsort函数简介 排序是程序员经常碰到的问题, ...

  4. qsort()的用法

    文章目录 1 qsort()的用法 1.1 qsort()函数原型 1.2 qsort()示例代码 1 qsort()的用法 1.1 qsort()函数原型 #include <stdlib.h ...

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

    这篇文章是  一楼那个学长写的  C库函数qsort七种使用方法示例 七种qsort排序方法<本文中排序都是采用的从小到大排序> 一.对int类型数组排序 C++代码 int num[10 ...

  6. 【C语言】qsort函数用法(转)

    qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(cons ...

  7. java double 排序_转载:qsort细节用法,double型的排序我竟然一直用错了~~~

    转载:qsort细节用法,double型的排序我竟然一直用错了--- (2010-11-26 18:16:43) 标签: 杂谈 分类: 转载 在对浮点或者double型的一定要用三目运算符,因为如果也 ...

  8. C语言 qsort的用法 模拟EXCEL排序

    C语言 qsort的用法 模拟EXCEL排序 题目 Excel可以对一组记录按任意指定列排序.现请编写程序实现类似的功能. 输入 输入的第一行包含两个正整数N(<= 10^5)和C,其中N是记录 ...

  9. 【C语言】库函数qsort的使用

    一.回调函数 二.库函数qsort 三.使用qsort排序整型数组 四.使用qsort排序结构体 1.使用qsort排序结构体中的字符成员 2.使用qsort排序结构体中的整型成员 五.基于冒泡排序的 ...

最新文章

  1. 提高班第三周周记(中秋第一天)
  2. 分类模型的性能评价指标(Classification Model Performance Evaluation Metric)
  3. this、new、模式工厂、创建新的构造函数
  4. JPA J2SE 桌面应用范例
  5. python画有权重网络图_使用Python的networkx绘制精美网络图教程
  6. Gprmax 三维地质雷达建模及在 paraview 中的可视化
  7. NotImplementedError: Cannot convert a symbolic Tensor报错与解决
  8. (28)FPGA面试题寄生效应
  9. python适合自学编程吗-对没有编程基础的人来说,直接学Python入门IT合适吗?
  10. Android图像办理组件
  11. Win10 默认输入变全角问题解决方法
  12. Android开发技术学习之下拉刷新功能的实现
  13. PGN: 指针生成网络(Get To The Point: Summarization with Pointer-Generator Networks)
  14. Unity 角色慢动作
  15. Work20230417
  16. PDF电子发票内容提取
  17. 微信小程序开发者工具error:用户绑定的手机需要进行验证,请在客户端完成短信验证
  18. java 大量数据保存_使用Java保存大量数据的最佳实践
  19. PNAS:问微生物群落演替之随机性与确定性过程-谁主沉浮
  20. 英雄联盟 + 头盔检测数万张数据+检测模型 放送

热门文章

  1. Linux修改hosts
  2. 三次样条曲线CubicSpline
  3. 蛋白质相互作用位点标签的获取方法
  4. leetcode844 比较含退格的字符串(python)
  5. 用Python实现Word多文档合并
  6. 2、python学习笔记第二课:python开发环境
  7. C语言笔记——题目“股神”
  8. mysql加锁分析 何登成_何登成的技术博客 ? MySQL 加锁处理分析
  9. python如何计算平方_Python lmfit如何计算R平方?
  10. 程序员必备的20多种开发工具