qsort函数是C语言库中提供的一种快速排序,头文件是stdlib.h
qsort的使用
qsort函数需要四个参数:
1.排序的起始位置的地址(数组名): arr
2.排序元素的个数: sizeof(arr)/sizeof(arr[0])
3.排序元素的大小(字节) sizeof(arr[0])
4.比较两个元素大小的函数(排序原则)
排序原则
int 类型的数组
首先我们传给这个函数两个元素,用两个void * 的指针接收地址,
然后我们先将两个void* 类型的指针强制转化为int * 类型的指针,对两个指针进行解引用,得到两个元素的大小,并将两个元素大小进行比较,返回两个相减之后的值
p1-p2为升序
p2-p1为降序
char类型的数组
char类型的数组中元素是字符型,无法直接相减比较大小
这时我们需要使用strcmp函数,可以比较两个字符串的大小,头文件是string.h
如果第一个字符串小于第二个字符串,则返回小于0的数
如果第一个字符串等于第二个字符串,则返回0
如果第一个字符串大于第二个字符串,则返回大于0的数
用qsrot排序各种类型的数据
int类型
char类型
浮点数类型
qsort的模拟实现
使用冒泡函数对qsort函数进行模拟实现(int类型)