#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<Windows.h>
int int_cmp(const void *p1, const void *p2)
{
return(*(int *)p1 > *(int *)p2);
}
void _swap(void *p1, void*p2, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
char tmp = *((char *)p1 + i);
*((char *)p1 + i) = *((char *)p2 + i);
*((char *)p2 + i) = tmp;// 或者用不创建变量交换两个数字(异或)
}
}
void bubble(void*base, int count, int size, int(*cmp)(void*, void *))
{
int i = 0;
int j = 0;
for (i = 0; i < count - 1; i++)
{
for (j = 0; j < count - i - 1; j++)
{
if (cmp((char*)base + j*size, (char*)base + (j + 1)*size)>0)
{
_swap((char*)base + j*size, (char*)base + (j + 1)*size, size);
}
}
}
}
int main()
{
int arr[] = { 1, 222, 33, 15, 25, 16, 34 };
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
bubble(arr, sz, sizeof(int), int_cmp);
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n ");
system("pause");
return 0;
}
关于q_sort问题
最新推荐文章于 2023-07-17 21:13:06 发布