#include<stdio.h>
void swap(int th, char* arr, char* arr2)
{
int i;
for (i = 0; i < 4; i++)
{
char p = *arr;
*arr = *arr2;
*arr2 = p;
arr++;
arr2++;
}
}
int test( void* e1, void* e2)
{
return *(int*)e1 - *(int*)e2;
}
void my_qsort(void*arr,int sz,int th,int (*p)( void*e1, void*e2))
{
int i=0;
int j=0;
int m = 0;
int n = 0;
for(n=0;n<5;n++)
for (i = 0; i <sz; i++)
for (j = 0; j < sz-1-i; j++)
if (p((char*)arr + j * th, (char*)arr + (j + 1) * th)>0)
{
printf(">>>>>>>%d<<<<<<\n", p((char*)arr + j * th, (char*)arr + (j + 1) * th));
swap(th, (char*)arr + j * th, (char*)arr + (j + 1) * th);
printf("%d %d\n", i, j);
for (m = 0; m < sz; m++)
printf(" %d ", *((int*)arr+m));
printf("\n");
}
}
int main()
{
int arr[] = {99,81,47,65,5,4,3,2,1,22};
int sz = sizeof(arr)/sizeof(arr[0]);
int i;
my_qsort(arr, sz, sizeof(arr[0]), test);
for (i = 0; i < sz; i++)
printf("%d\n",arr[i]);
printf("*** %c ***", (char)arr[3]);
printf("%d", arr[3]);
return 0;
}
qsort的实现
最新推荐文章于 2024-09-12 10:47:07 发布
该代码示例展示了如何在C语言中实现快速排序算法(qsort)。通过定义swap函数交换数组元素,以及test函数进行整数比较,my_qsort函数执行自定义排序。在main函数中,对一个整数数组进行排序并打印结果。
摘要由CSDN通过智能技术生成