当前位置: 首页 > news >正文

C语言之qsort函数

一、qsort

1.库函数qsort

qsort是库函数,直接可以用来排序数据,底层使用的是快速排序。

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

2.头文件

#include<stdlib.h>

3.参数讲解

 

void*类型的指针是无具体类型的指针,这种类型的指针的不能直接解引用,也不能进行加减整数的运算,它的作用是接收任何类型的地址。

 二、qsort函数排序整型数据

#include<stdio.h>
#include<stdlib.h>
int int_cmp(const void* p1, const void* p2)
{//第一种方式//if (*(int*)p1 > *(int*)p2)//	return 1;//else if (*(int*)p1 == *(int*)p2)//	return 0;//else//	return -1;//第二种方式return (*(int*)p1 - *(int*)p2);
}
int main()
{int arr[10] = { 2,4,6,8,0,9,7,5,3,1 };int i = 0;int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(int), int_cmp);for (i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}

三、qsort函数排序结构体数据

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Stu
{char name[20];int age;
};
//按照年龄比较
int cmp_stu_by_age(const void* p1, const void* p2)
{return ((struct Stu*)p1)->age - ((struct Stu*)p2)->age;
}
//按照名字比较
int cmp_stu_by_name(const void* p1, const void* p2)
{return strcmp(((struct Stu*)p1)->name, ((struct Stu*)p2)->name);
}
//按照年龄比较
void test1()
{struct Stu s[] = { {"zahngsan",20},{"lisi",30},{"wangwu",15} };int sz = sizeof(s) / sizeof(s[0]);qsort(s, sz, sizeof(s[0]), cmp_stu_by_age);for (int i = 0; i < sz; i++){printf("%d ", s[i].age);}printf("\n");
}
//按照名字比较
void test2()
{struct Stu s[] = { {"zahngsan",20},{"lisi",30},{"wangwu",15} };int sz = sizeof(s) / sizeof(s[0]);qsort(s, sz, sizeof(s[0]), cmp_stu_by_name);for (int i = 0; i < sz; i++){printf("%s ",s[i].name);}printf("\n");
}
int main()
{test1();test2();return 0;
}

相关文章:

C语言之qsort函数

一、qsort 1.库函数qsort qsort是库函数&#xff0c;直接可以用来排序数据&#xff0c;底层使用的是快速排序。 qsort函数可以排序任意类型的数据。 2.头文件 #include<stdlib.h> 3.参数讲解 void*类型的指针是无具体类型的指针&#xff0c;这种类型的指针的不能直接解…...

R 数据重塑

R 数据重塑 在数据分析领域&#xff0c;R 语言以其强大的数据处理和可视化能力而著称。数据重塑是数据分析过程中的一个重要步骤&#xff0c;它涉及将数据从一种形式转换为另一种更适宜进行分析的形式。R 语言提供了多种工具和包来简化这一过程&#xff0c;如 dplyr、tidyr 和…...

opencascade AIS_InteractiveContext源码学习8 trihedron display attributes

AIS_InteractiveContext 前言 交互上下文&#xff08;Interactive Context&#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是&#xff0c;对于已经被交互上下文识别的交互对象&#xff0c;必须使用上下文方法进行…...

【云岚到家】-day05-6-项目迁移-门户-CMS

【云岚到家】-day05-6-项目迁移-门户-CMS 4 项目迁移-门户4.1 迁移目标4.2 能力基础4.2.1 缓存方案设计与应用能力4.2.2 静态化技术应用能力 4.3 需求分析4.3.1 界面原型 4.4 系统设计4.4.1 表设计4.4.2 接口与方案4.4.2.1 首页信息查询接口4.4.3.1 数据缓存方案4.4.3.2 页面静…...

linux彻底卸载docker

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done 要彻底卸载 Docker 及其相关组件&#xff0c;可以按照以下步骤进行操作。请注意&#xff0c;这些步骤会删除 Docker 安装的所有容器、镜…...

linux高级编程(网络)(www,http,URL)

数据的封包和拆包 封包&#xff1a; 应用层数据&#xff08;例如HTTP请求&#xff09;被传递给传输层。传输层&#xff08;TCP&#xff09;在数据前添加TCP头部&#xff08;包含端口号、序列号等&#xff09;。网络层&#xff08;IP&#xff09;在TCP段前添加IP头部&#xff…...

Perl 语言开发(十三):网络编程

目录 1. 概述 2. 网络编程基础 2.1 网络协议概述 2.2 Perl 网络编程基础模块 3. TCP 网络编程 3.1 创建 TCP 服务器 3.2 创建 TCP 客户端 4. UDP 网络编程 4.1 创建 UDP 服务器 4.2 创建 UDP 客户端 5. 高级网络编程 5.1 非阻塞 I/O 5.2 多线程网络编程 6. 简单的…...

Leetcode算法题(移除链表中的元素)

题目如下&#xff1a; 思路1&#xff1a;创建一个新的带头链表 &#xff08;newhead&#xff09;&#xff0c;遍历头结点对应的值分别于x进行比较&#xff0c;将不等于x的节点尾插到新的带头链表中&#xff0c;返回新的带头链表的下一个节点。 代码如下&#xff1a; typedef …...

浅谈网络安全防守:从被动应对到主动管理的转变

浅谈网络安全防守&#xff1a;从被动应对到主动管理的转变 背景&#xff1a; 在当今的数字时代&#xff0c;网络安全已成为企业生存和发展的重要基石。然而&#xff0c;当企业的网络安全体系面临着诸如资产不清、互联网应用管理混乱、边界防火墙策略失效、长期未修复的漏洞、…...

CentOS7仅安装部署MySQL80客户端

文章目录 CentOS7仅安装部署MySQL80客户端一、前言1.场景2.环境 二、正文1.安装MySQL客户端2. 数据库备份脚本 CentOS7仅安装部署MySQL80客户端 一、前言 1.场景 仅安装部署MySQL80客户端&#xff0c;用于备份数据库时使用 mysqldump 工具 2.环境 Linux 发行版&#xff1a…...

力扣经典题目之->移除值为val元素的讲解,的实现与讲解

一&#xff1a;题目 博主本文将用指向来形象的表示下标位的移动。 二&#xff1a;思路 1&#xff1a;两个整形&#xff0c;一个start&#xff0c;一个end&#xff0c;在一开始都 0&#xff0c;即这里都指向第一个元素。 2&#xff1a;在查到val之前&#xff0c;查一个&…...

pico+unity3d项目配置

重点&#xff1a;unity编辑器版本要和pico的sdk要求一致、比如&#xff1a; 对于 Unity 2022.1.14 及以上版本&#xff0c;若同时在项目中使用 URP、Linear 色彩空间、四倍抗锯齿和OpenGL&#xff0c;会出现崩溃。该问题待 Unity 引擎解决。对于 Unity 2022&#xff0c;若同时…...

python条件

条件语句 if语句 if...else语句 if...elif...else语句 嵌套 is is 是一个身份运算符&#xff0c;用于比较两个对象的身份&#xff0c;即它们在内存中的地址是否相同。这与比较两个对象是否相等的 运算符不同。 运算符比较的是两个对象的值是否相等。 比较对象 比较基本数据…...

华为USG6000V防火墙v1

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1&#x1f923;防火墙FW1web服务配置 2.网络配置 要求1&#xff1a;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 要求2&#xff1a;生产区不…...

Apache访问机制配置

Apache访问机制配置 Apache HTTP Server&#xff08;简称Apache&#xff09;是世界上使用最广泛的Web服务器之一。它的配置文件通常位于/etc/httpd/conf/httpd.conf或/etc/apache2/apache2.conf&#xff0c;根据操作系统的不同而有所不同。以下是配置Apache访问机制的详细说明…...

在word中删除endnote参考文献之间的空行

如图&#xff0c;在References中&#xff0c;每个文献之间都有空行。不建议手动删除。打开Endnote。 打开style manager 删除layout中的换行符。保存&#xff0c;在word中更新参考文献即可。...

【详解】Spring Cloud概述

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;Spring学习之路&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1. 认识微服务 1.1 单体架构 1.2 集群和分布式架构 1.3 集群和分布式…...

板级调试小助手(3)基于PYNQ的OLED视频显示

一、前言 在之前的文章中介绍了《板级调试小助手》的系统结构和DDS自定义外设的搭建。这篇文章主要介绍一下如何在PYNQ中驱动平时长剑的OLED12864显示屏&#xff0c;并显示BadApple&#xff08;毕竟有屏幕的地方就要有BadApple&#xff09;。效果如下&#xff1a; BadApple 本项…...

git批量删除本地包含某字符串的特定分支

git批量删除本地包含某字符串的特定分支 git branch -a | grep 分支中包含的字符串 | xargs git branch -D git删除本地分支_git查看删除本地分支-CSDN博客文章浏览阅读989次。git branch -d <分支名>可以通过: git branch 查看所有本地分支及其名字&#xff0c;然后删…...

Android中RecyclerView使用详解(一)

目录 概述优点列表布局RecyclerView一、创建RecyclerView并且在布局中绑定二、实现RecyclerView单个item的布局三、给RecyclerView写一个对应的适配器Adapter1.创建自定义的ViewHolder2.继承Adapter&#xff0c;泛型使用我们自定义的ViewHolder3.重写Adapter的三个方法onCreate…...

Xtreme Download Manager终极指南:如何实现500%下载加速

Xtreme Download Manager终极指南&#xff1a;如何实现500%下载加速 【免费下载链接】xdm Powerfull download accelerator and video downloader 项目地址: https://gitcode.com/gh_mirrors/xd/xdm 你是否经常遇到下载速度缓慢、视频无法保存、大文件下载中断的困扰&am…...

FactoryBluePrints项目深度解析:戴森球计划终极工厂蓝图优化指南

FactoryBluePrints项目深度解析&#xff1a;戴森球计划终极工厂蓝图优化指南 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints FactoryBluePrints项目是戴森球计划游戏中最为…...

Cursor Pro破解工具终极指南:5步解锁AI编程助手完整功能

Cursor Pro破解工具终极指南&#xff1a;5步解锁AI编程助手完整功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

Monocle性能监控与优化:确保高并发访问的稳定性

Monocle性能监控与优化&#xff1a;确保高并发访问的稳定性 【免费下载链接】monocle Link and news sharing 项目地址: https://gitcode.com/gh_mirrors/mon/monocle Monocle作为一个链接和新闻分享平台&#xff0c;在面对高并发访问时的稳定性至关重要。本文将分享一些…...

MakeMeAHanzi终极指南:如何免费获取9000+汉字动画数据

MakeMeAHanzi终极指南&#xff1a;如何免费获取9000汉字动画数据 【免费下载链接】makemeahanzi Free, open-source Chinese character data 项目地址: https://gitcode.com/gh_mirrors/ma/makemeahanzi MakeMeAHanzi是一个完全免费的开源汉字数据宝藏库&#xff0c;为汉…...

量子优化新突破:虚时间演化高效求解QUBO问题

1. 量子优化新范式&#xff1a;模拟虚时间演化解决QUBO问题在金融投资组合优化、物流路径规划和机器学习特征选择等领域&#xff0c;二次无约束二进制优化&#xff08;QUBO&#xff09;问题无处不在。这类NP难问题随着规模扩大&#xff0c;求解难度呈指数级增长&#xff0c;传统…...

安克创新推 Soundcore Liberty 5 Pro 系列耳机:AI 降噪+智能记录,续航与功能的新平衡

Soundcore Liberty 5 Pro 系列&#xff1a;AI 音频芯片带来降噪新体验安克创新推出 Soundcore Liberty Pro 真无线耳机的新版本——Liberty 5 Pro 及 Liberty 5 Pro Max。Liberty 5 Pro 是首款搭载 Thus AI 音频芯片的耳机&#xff0c;该芯片能增强降噪能力&#xff0c;让用户在…...

英特尔N150处理器深度解析:从N100升级看嵌入式一体机效能进化

1. 从N100到N150&#xff1a;一次务实且精准的效能升级在嵌入式与一体机领域&#xff0c;选择一颗合适的处理器&#xff0c;往往意味着在性能、功耗、成本和扩展性之间找到那个微妙的平衡点。过去几年&#xff0c;英特尔的N100处理器凭借其出色的能效比&#xff0c;成为了众多办…...

如何让抓取手机日志---ADB 从入门到实战:小米14日志抓包与连接详解

一、ADB 是什么&#xff1f; ADB 的全称是 Android Debug Bridge&#xff08;安卓调试桥&#xff09;。顾名思义&#xff0c;它就像一座桥梁&#xff0c;连接你的电脑和安卓手机。 Debug&#xff08;调试&#xff09;&#xff1a;它的核心用途是帮助开发者调试应用、分析问题。…...

告别手动启动:在Windows Server上把Gitblit配置成稳定可靠的后台服务

Windows Server生产环境Gitblit服务化部署全指南 在团队协作开发中&#xff0c;代码仓库的稳定性和可靠性直接影响着整个研发流程的效率。对于使用Windows Server作为基础架构的企业来说&#xff0c;将Gitblit从简单的命令行工具转变为系统服务&#xff0c;是实现7x24小时不间断…...