冒泡排序我们都知道,就是比较相邻的数字大小,将数组从小到大排序。(前面的博客写过这个排序),那要是用冒泡排序完成不同类型的数据的排序呢?
这一下子就让我想到了sqort,上一篇博客才写过这个函数,特别是这个函数的参数,其中最后一个参数就是一个函数指针,可以指向不同的函数。那么我们可不可以用冒泡排序模拟一下sqort函数呢?
答案是肯定的,我们可以根据不同类型的数据写几个比较函数,然后将函数地址传给冒泡排序的最后一个参数,其他的和sqort相似。
下面我们就来看看这是如何实行的吧!
//自己完成一个冒泡排序(bubble_sort),可以完成不同类型数据的排序。
int cmp_int(const void * a,const void * b)//整形比较函数
{
return *(int *)a - *(int *)b;
}
int cmp_double(const void * a,const void * b)//浮点数比较函数
{
return *(double*)a > *(double*)b ? 1 : -1;
}
int cmp_string(const void * a,const