//void bubble_sort(int arr[], int sz)
//{
// //冒泡排序次数
// int i = 0;
// for (i = 0; i < sz-1; i++)
// {
// int j = 0;
// for (j = 0; j < sz-1-i; j++)
// {
// if (arr[j] > arr[j + 1])
// {
// int tmp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = tmp;
// }
// }
// }
//}
//int main()
//{
// int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
// //把数组排成升序
// int sz = sizeof(arr) / sizeof(arr[0]);
// bubble_sort(arr, sz);
// int i = 0;
// for (i = 0; i < sz; i++)
// {
// printf("%d ", arr[i]);
// }
//}
快速排序(qsort) C语言自带,可以排序任何类型的数据
void qsort(void* base, //你要排序数据的起始位置
size_t num, //待排序数据的个数
size_t size, //待排序的数据元素的大小(单位是字节)
int (*compar)(const void* e1, const void* e2));//函数指针,比较函数
e1,e2是要比较的两个数据的地址
void* 是无具体类型的指针,可以接受任意类型的指针,void* 是无具体类型的指针,所以无法进行解引用操作,也不能+-整数。
int compare(const void* e1, const void* e2)
{
return(*(int*)e1 - *(int*)e2);
}
void test1()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
//把数组排成升序
int sz = sizeof(arr) / sizeof(arr[0]);
//bubble_sort(arr, sz);
qsort(arr, sz, sizeof(arr[0]), compare);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}