qsort的使用及模拟实现

qsort函数是C语言库中提供的一种快速排序,头文件是stdlib.h

qsort的使用

 qsort函数需要四个参数:

1.排序的起始位置的地址(数组名):    arr

2.排序元素的个数:   sizeof(arr)/sizeof(arr[0])

3.排序元素的大小(字节)   sizeof(arr[0])

4.比较两个元素大小的函数(排序原则)

排序原则

int 类型的数组

qsort的使用及模拟实现_第1张图片

 首先我们传给这个函数两个元素,用两个void * 的指针接收地址,

然后我们先将两个void* 类型的指针强制转化为int * 类型的指针,对两个指针进行解引用,得到两个元素的大小,并将两个元素大小进行比较,返回两个相减之后的值

p1-p2为升序

p2-p1为降序

char类型的数组

char类型的数组中元素是字符型,无法直接相减比较大小

这时我们需要使用strcmp函数,可以比较两个字符串的大小,头文件是string.h

qsort的使用及模拟实现_第2张图片 如果第一个字符串小于第二个字符串,则返回小于0的数

 如果第一个字符串等于第二个字符串,则返回0

 如果第一个字符串大于第二个字符串,则返回大于0的数

qsort的使用及模拟实现_第3张图片

 用qsrot排序各种类型的数据

int类型

qsort的使用及模拟实现_第4张图片

 char类型

qsort的使用及模拟实现_第5张图片

浮点数类型 

qsort的使用及模拟实现_第6张图片

 qsort的模拟实现

使用冒泡函数对qsort函数进行模拟实现(int类型)

qsort的使用及模拟实现_第7张图片

 qsort的使用及模拟实现_第8张图片

 

 

 

 

你可能感兴趣的:(C语言,数据结构,c语言)