在对某些数据进行排序的时候,例如很简单的冒泡排序可以帮助我们实现整数的排列
那在对复杂情况进行排序时,C语言提供了一个很好用的函数qsort帮助我们进行排序
本文就qsort的功能及其实现进行讲解。
一、冒牌排序排列0 1 2 3 4 5 6 7 8 9
代码:
void print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
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;
}
}
}
}
void test_by_bubble()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);
print(arr, sz);
}
int main()
{
//实现升序
test_by_bubble();
}
我们上述所定义的函数,只能单一地实现对于整数的排序
观察C语言提供地qsort:
利用这个函数,我们可以试着排列一些复杂的数据,比如:结构体类型的数据:
下边的年龄、成绩也可以排序: