前言
“我告诉我自己要涂自己喜欢的口红,我告诉我自己要好好生活。”
“我是说,我期待一个春天”
一、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函数原型如下
头文件