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

发布时间 - 2026-01-11 02:56:20    点击率:

本文实例为大家分享了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);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# C语言  # 快排函数  # c语言快速排序算法示例代码分享  # C语言实现选择排序、冒泡排序和快速排序的代码示例  # 用c语言实现冒泡排序  # 选择排序  # 快速排序  # C语言简单实现快速排序  # C语言实现快速排序算法  # C语言的冒泡排序和快速排序算法使用实例  # C语言中快速排序和插入排序优化的实现  # C语言数据结构 快速排序实例详解  # C语言实现快速排序  # C语言实现快速排序算法实例  # 大家分享  # 具体内容  # 从小到大  # 大家多多  # 错在  # string  # stdlib  # gt  # struct  # id  # char  # student  # int  # pre  # class  # compare  # zhang  # brush  # lt  # stdio 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建高效简练网站?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何破解联通资金短缺导致的基站建设难题?  js实现获取鼠标当前的位置  昵图网官网入口 昵图网素材平台官方入口  Laravel如何实现API速率限制?(Rate Limiting教程)  Swift中switch语句区间和元组模式匹配  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  nginx修改上传文件大小限制的方法  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  微信小程序 input输入框控件详解及实例(多种示例)  Firefox Developer Edition开发者版本入口  如何撰写建站申请书?关键要点有哪些?  如何实现建站之星域名转发设置?  Laravel如何使用Blade组件和插槽?(Component代码示例)  Java类加载基本过程详细介绍  如何生成腾讯云建站专用兑换码?  javascript中的try catch异常捕获机制用法分析  常州企业网站制作公司,全国继续教育网怎么登录?  在线教育网站制作平台,山西立德教育官网?  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  七夕网站制作视频,七夕大促活动怎么报名?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Android滚轮选择时间控件使用详解  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Windows Hello人脸识别突然无法使用  Laravel Session怎么存储_Laravel Session驱动配置详解  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何彻底卸载建站之星软件?  利用JavaScript实现拖拽改变元素大小  javascript如何操作浏览器历史记录_怎样实现无刷新导航  高端网站建设与定制开发一站式解决方案 中企动力  MySQL查询结果复制到新表的方法(更新、插入)  做企业网站制作流程,企业网站制作基本流程有哪些?  C++时间戳转换成日期时间的步骤和示例代码  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  独立制作一个网站多少钱,建立网站需要花多少钱?  如何在服务器上三步完成建站并提升流量?  如何快速登录WAP自助建站平台?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  大同网页,大同瑞慈医院官网?  如何挑选高效建站主机与优质域名?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  *服务器网站为何频现安全漏洞?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  Linux系统命令中tree命令详解