qsort是一个库函数

头文件是<stdlib.h>

普通的排序如数组中冒泡排序只能排序整型

而qsort函数可以排序任意的类型


qsort的基本类型

void qsort(

void *base,//star of target array(数组的起始位置)

size_t num,//Array size in elements数组的大小 单位:元素

size_width,//数组每个元素的大小

int( *compare)(const void*elem1 ,constvoid*elem2) //函数指针指向函数


用qsort 排序整型数组

int cmp_int(const void*elem,const void*elem2)//类型必须为void 因为void*是可以所有类型的指针
{return  *(int*)e1-*(int*)e2//compare的规定是e1>e2返回1 小于返回-1 等于返回 0}void test()
{int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };int sz = sizeof(arr) / sizeof(arr[0]);//求出数组的所占空间大小qsort(arr,sz,sizeof (arr[0]),cmp_int);//arr是数组名,代表数组的首原元素地址
sz是数组的大小   sizeof(arr[0])是代表数组每一个元素大小   cmp_int是用来对应compare(比较)来实现其排序功能的自定义函数int i;for( i=0;i<10;i++){printf("%4d", arr[i]);}
}int main()
{test();return 0;
}

字符型

int tmp_float(const void*e1, const void*e2)
{/*if (*(float*)e1 >*(float*) e2){return 1;}else if (*(float*)e1 == *(float*)e2){return 0;}else{return -1;}*/return * (float*)e1 > * (float*)e2;
}void test()
{float f[] = {5.0, 4.0, 3.0, 2.0};float es = sizeof(f) / sizeof(f[0]);qsort(f, es, sizeof(f[0]),tmp_float);int j;for (j = 0; j < es; j++){printf("%8f", f[j]);}
}int main()
{test();
}

结构体


typedef  struct stu
{char name[20];int age;
}stu;int tmp_struct_age(const void*e1,const void*e2)
{return ((struct stu*)e1)->age - ((struct stu*)e2)->age;
}void test3()
{stu s[3] = { {"张三",18},{"李四",60},{"王五",24}};int sm = sizeof(s) / sizeof(s[0]);qsort(s,sm,sizeof(s[0]),tmp_struct_age);int j;for (j = 0; j < sm; j++){printf("%8d", s[j].age);}}
int main()
{test();
return 0;
}

C++ qsort的理解相关推荐

  1. C语言qsort排序

    1 qsort原理介绍 函数原型: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, con ...

  2. Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.2. The Python language

    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.2. The Python language 1.2.2. 基本 ...

  3. 【排序】什么都能排的C语言qsort排序详解【超详细的宝藏级别教程】深度理解qsort排序

    [排序]什么都能排的C语言qsort排序详解[超详细的宝藏级别教程]深度理解qsort排序 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客之前,博主在这里 ...

  4. qsort函数的理解和使用

    目录 qsort函数 cmp函数的自定义 主函数 排序int类型代码 排序结构体 排序结构体的总代码(供读者测试) qsort函数 qsort函数是<stdlib.h>库函数中的,基于快速 ...

  5. C中的qsort函数和C++中的sort函数的理解与使用

    一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...

  6. 64位程序怎么判断指针是否有效_C 语言指针怎么理解?

    注: 看完这篇一定会让你理解透彻指针的本质 是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解. 不了解的对指针的理 ...

  7. qsort与sort()

    int cmp(const void *a, const void *b) /** 关于快排函数的一些说明 **qsort,包含在stdlib.h头文件里,函数一共四个参数,没返回值.一个典型的qso ...

  8. 七、排序(4)——qsort()

    一.回顾 时间复杂度 是稳定排序 是原地排序 冒泡排序 O(n2) √ √ 插入排序 O(n2) √ √ 选择排序 O(n2) × √ 快速排序 O(nlogn) × √ 归并排序 O(nlogn) ...

  9. sort qsort的区别

    qsort 更为通用,但是比较慢,比较函数相当难理解 sort 快,比较函数好理解 下面的实验室要a降序排列 int qCmp(const void * a,const void *b) {int a ...

最新文章

  1. SQL Server-聚焦什么时候用OPTION(COMPILE)呢?
  2. 交通工程专业的计算机论文,交通工程(毕业论文).doc
  3. 家门口的医疗新体验,网易云信携手嘉虹健康打造互联网医院新场景
  4. bootstrap学习(五)代码
  5. activity中指定一页面动态设置软键盘弹出属性
  6. arm汇编—str,mov等指令
  7. 吊打面试官之redis篇:一文全懂redis
  8. 2.4GHz频段天线的选择
  9. iOS 如何找到或生成 .dSYM 文件
  10. debian dos2unix
  11. Linux 命令大全
  12. 关于word中插入的mathtype公式变形问题的解决方案
  13. Sicily 1001. Alphacode
  14. 关键应用在超融合环境下的实践
  15. Spring的注解@Bean
  16. 两个led并联和一个电阻串联两个灯不能同时亮问题
  17. 编写js代码的注意问题
  18. OC 教程 极光分享
  19. Android模拟器(windows(蓝叠,Virutalbox……) + linux (ARChon……)+ 移动设备(vmos……))
  20. 成都速领科技:如何做好短视频

热门文章

  1. CSS之浮动/BFC/清除浮动(十二)
  2. 最大化使用51的RAM空间
  3. Hadoop题库(选择题、判断题)详细介绍
  4. X86,x86_64(AMD64),ppc64,i386,ppc64le,ARM,AMD,,AArch64的概念
  5. 【LintCode】Backpack 背包问题
  6. leetcode844 比较含退格的字符串(python)
  7. unity接入讯飞AIUI(Windows SDK)
  8. HTML中的图片标签<img>
  9. Android 之路51---百度地图实现
  10. elixir mix 简介