排序是一种按特定顺序排列数据的过程。c语言中可使用qsort()函数对数组排序,该函数需要一个比较函数来比较两个元素并返回比较结果。例如,以下代码演示如何使用int_compare()比较函数对整数数组进行从小到大排序。
C语言数组排序
排序是什么?
排序是一种将数据按特定顺序排列的过程,例如从小到大或从大到小排列。
C语言中如何使用数组排序?
立即学习“C语言免费学习笔记(深入)”;
在C语言中,可以使用qsort()函数对数组进行排序。该函数原型如下:
void qsort(void *base, size_t num, size_t size, int (*compar)(const void*, const void*));
- base:待排序数组的首地址
- num:数组中元素的数量
- size:每个元素的大小(以字节为单位)
- compar:比较函数,用于比较两个元素并返回比较结果
比较函数
为了使用qsort(),需要提供一个比较函数。该函数接收两个元素的指针,并返回一个整数,表示两个元素之间的比较结果:
- 负值:第一个元素小于第二个元素
- 零:两个元素相等
- 正值:第一个元素大于第二个元素
示例代码
以下示例演示了如何使用qsort()对整数数组进行排序:
#include <stdio.h>
#include <stdlib.h>
int int_compare(const void *a, const void *b) {
int *pa = (int*)a;
int *pb = (int*)b;
return *pa - *pb;
}
int main() {
int arr[] = {3, 1, 4, 2, 5};
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), int_compare);
for (int i = 0; i <p>输出:</p>
<pre class="brush:php;toolbar:false">1 2 3 4 5