我已经读过需要比较函数需要qsort()有3个结果:
val1 < val20 如果 val1 == val2val1 > val2据我所知,排序数组只需要一个返回true或false的谓词.以冒泡为例:
int compare(int a, int b)
{
if(a>b) return 1;
return 0;
}
void bubbleSort(int arr[], int n)
{
int i, j;
for (i = 0; i < n-1; i++)
for (j = 0; j < n-i-1; j++)
if ( compare(arr[j],arr[j+1]) )
swap(&arr[j], &arr[j+1]);
}
Run Code Online (Sandbox Code Playgroud)
那么为什么qsort()比较函数需要有3种可能的结果而不是2呢?