Bootstrap

C语言函数序列之模拟qsort函数,进行冒泡排序

模拟qsort函数,进行冒泡排序

一. 函数介绍

首先,我们先对qsort函数进行一个简单的介绍:
​​​​在这里插入图片描述
qsort函数,头文件**<stdlib.h>**,包括四个参数。

四个参数具体介绍如下:

 void qsort(void* base,  //base是待排序数据中第一个字符的地址(若为数组则为数组名)。因数据类型未知,故定义为 void*
        size_t num,      //num是待排序数据的数据总个数,类型为size_t,即unsigned int。
        size_t size,     //size是待排序数据中数据的字节数大小,类型为size_t,即unsigned int。
        int (*compar)(const void*, const void*) 
                         //一个函数指针,指向的函数用于比较两数据的大小。

其中的compar函数介绍如下:

int compar(const void*n1, const void*n2)//const保证数据传输安全 该函数返回值类型为int
{
   
    return *(int*)n1 - *(int*)n2;
}
//compar函数中,若n1的值大于n2,则返回一个大于0的数;若n1=n2,则返回0;若n1小于n2,则返回一个小于0的数。
//故可以直接用n1减去n2。 需要先对数据进行类型强转,从void*转至int*再解引用进行计算。

二.函数演示

#include<stdio.h>
#include<stdlib.h>
int cmp(const void*n1,const void*n2)
{
   
	return *(int*)n1 - *(int*)n2;
}
int main()
{
   
	int arr[] = {
   
;