C语言快速排序函数用法(qsort)
时间:2019-03-31
本文章向大家介绍C语言快速排序函数用法(qsort),主要包括C语言快速排序函数用法(qsort)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例为大家分享了C语言快排函数用法,供大家参考,具体内容如下
#include <stdio.h> #include <stdlib.h> #include <string.h> struct student { int id; char name[12]; char sex; }; int compare(const void* a,const void* b)//基本数据类型排序 { return *(char*)a-*(char*)b;//从小到大 //取值//强转为相应类型的指针!! } int compare_struct(const void* a,const void* b) { return (*(struct student*)a).id-((struct student*)b)->id; //注意优先级诶!//否则报错在非结构体中。。。 } int compare_struct_duoji(const void* a,const void* b)//多级排序 { struct student student_a=*(struct student*)a; struct student student_b=*(struct student*)b; if(student_a.id==student_b.id) { return student_a.sex-student_b.sex; } else { return student_a.id-student_b.id; } } void main() { //*************char型************* char a[5]="hello"; qsort(a,5,sizeof(a[0]),compare); //元素个数//元素大小//函数指针 int i; for(i=0;i<5;i++) printf("%c ",a[i]); printf("\n"); //************struct型************ struct student e[4]={{100,"chen",'m'},{100,"li",'f'}, \ {70,"wang",'f'},{100,"zhang",'m'}}; qsort(e,4,sizeof(e[1]),compare_struct_duoji); for(i=0;i<4;i++) printf("%d %s %c\n",e[i].id,e[i].name,e[i].sex); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 使用QT创建系统托盘
- WinEdit编辑器中中文乱码
- 微信小游戏上线,2018年的H5游戏可以“跳一跳”
- QT程序在发布的时候应注意的地方
- 漂洋过海! 英文域名d.me小六位易主
- Python基础09 面向对象的进一步拓展
- QT中获取选中的radioButton的两种方法
- QT中根据ID设置radio按钮
- QWebView在 Qt 5.x中编译出错:File not found: main.obj
- Qt实现小功能之列表无限加载
- Python基础08 面向对象的基本概念
- 如何选择合适的PaaS
- 使用Qt installer framework制作安装包
- Qt Style Sheet实践(三):QCheckBox和QRadioButton
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 我要偷偷的学Python,然后惊呆所有人(第一天)
- Python 中的上下文管理
- 我是如何阅读JDK源码的?
- Docker以root身份登录到容器
- SOAPUI访问WEBSERVICE案例
- 编译安装nginx
- 磁盘高可用解决方案(DBA).md
- Python 3.7 + HttpRunner 初探
- 数据库PostrageSQL-服务器配置(复制)
- 高可用服务解决方案(DBA).md
- dotnet 使用 Interlocked 实现一个无锁的快速无序仅写集合
- 利用Python将gff3转换成gtf格式
- 单细胞DoHeatmap画热图标签出界
- FastSpar | 用更快的 SparCC 进行微生物组相关性分析
- GO和KEGG富集倍数(Fold Enrichment)如何计算