【C语言排序利器——qsort函数的介绍,使用,以及伪qsort底层实现】

本文介绍了C++标准库中的qsort函数,通过对比冒泡排序,展示了qsort如何支持不同类型的排序,包括整数、字符串和结构体,并详细讲解了其函数原型、使用方法和比较函数的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

“我告诉我自己要涂自己喜欢的口红,我告诉我自己要好好生活。”

“我是说,我期待一个春天”


一、qsort函数的介绍

qsort函数是一个用来排序的库函数,底层是用快速排序的思想实现的。

二、引入——由冒泡排序函数引入qsort排序

冒泡排序的思想为:两两相邻元素进行比较,满足顺序就不交换,不满足顺序就交换。
n 个数字要进行n-1趟排序

在这里插入图片描述

代码实现

//冒泡排序(升序版)
#include <stdio.h>

void Print(int* p, int n);
void Bubble_sort(int* p, int n)//排序函数
{
   
	for (int i = 0; i < n - 1; i++)
	{
   
		for (int j = 0; j < n - 1 - i; j++)
		{
   
			if (p[j] > p[j + 1])
			{
   
				int tmp = p[j];
				p[j] = p[j + 1];
				p[j + 1] = tmp;
			}
		}
	}
		Print(p, n);
}

void Print(int* p, int n)//打印函数
{
   
	for (int i = 0; i < n; i++)
	{
   
		printf("%d ", p[i]);
	}
	printf("\n");
}

int main(void)
{
   
	int arr[] = {
    9,8,7,6,5,4,3,2,1,0 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	Bubble_sort(arr, sz);
	
	return 0;
}

代码运行结果展示
在这里插入图片描述
写出来以后,我们仔细观察,就会发现这个函数的性能很差。如图,因为函数参数已经固定,这个函数只能排序整型数组,而qsort函数可以排序任意类型的数据,甚至是字符串以及结构体。那qsort是如何做到的呢?
在这里插入图片描述

三.qsort官网介绍

这是来及cplusplus官网上对于qsort的介绍,链接放在这里,读者可自行阅读 添加链接描述

qsort函数原型如下

头文件

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值