void swap_data(char *x,char *y,int width)
{
while (width--)
{
char tmp = *x;
*x = *y;
*y = tmp;
x++;
y++;
}
}
void my_qsort(void *arr, int len, int width, int(*cmp)(const void* x, const void* y))
{
int i = 0;
int j = 0;
for (i = 0; i < len; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (cmp(((char *)arr + j * width), ((char *)arr + (j + 1) * width)) > 0)
{
swap_data(((char *)arr + j * width), ((char *)arr + (j + 1) * width),width);
}
}
}
}
模仿qsort的功能实现一个通用的冒泡排序。
最新推荐文章于 2022-08-23 18:32:27 发布