概述
问题描述:
对回调函数进行简单运用;
模拟实现 qsort ;
采用冒泡排序法。
问题描述:
1、定义数组,初始化要排序的数,并打印数组;
2、调用 bubble 函数;
3、调用 int_cmp 函数进行比较两个数大小,然后调用 _swap 函数进行交换两个数的值;
4、完成排序,打印排序后数组。
源代码:
#include<stdio.h>
#include<windows.h>
static int int_cmp(void *x, void *y)
{
return *((int *)x) > *((int *)y);
}
static void swap(void *x, void *y, int size)
{
char *p = (char*)x;
char *q = (char*)y;
while (size--)
{
*q ^= *p;
*p ^= *q;
*q ^= *p;
p++;
q++;
}
}
void mySort(void *arr, int count, int size, int(*cmp)(void *, void*))
{
int i = 0;
int j = 0;
int flag = 0;
for (; i<count - 1; i++)
{
flag = 0;
for (j = 0; j<count - 1 - i; j++)
{
if (cmp((char*)arr + j*size, (char*)arr + (j + 1)*size) > 0)
{
flag = 1;
swap((char*)arr + j*size, (char*)arr + (j + 1)*size, size);
}
}
if (flag == 0)
{
return 0;
}
}
}
int main()
{
int i = 0;
int arr[] = { 3, 21, 4, 21, 23, 1, 125, 1, 0,3 };
int size = sizeof(arr) / sizeof(arr[0]);
mySort(arr, size, sizeof(int), int_cmp);
for (; i <size; i++)
{
printf("%d ", arr[i]);
}
printf("n");
system("pause");
return 0;
}
最后
以上就是英俊雨为你收集整理的使用回调函数,模拟实现 qsort (采用冒泡排序法)的全部内容,希望文章能够帮你解决使用回调函数,模拟实现 qsort (采用冒泡排序法)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复