qsort函数原型是
void qsort(void*base,size_t num,size_t width,
int(__cdecl*compare)(const void*,const void*));
4个参数:
void *base:指向需要排序的数组
size_t num:数组中元素的数目
size_t width:每个元素的长度
int(__cdecl*compare)(const void*,const void*); 回调函数(函数指针) 等价于
int(*compare) (const void *,const void*);
//如果 第一个参数 > 第二个参数 ,返回大于0的整数
第一个参数 = 第二个参数 ,返回整数0
第一个参数 < 第二个参数 ,返回小于0的整数
即:用户调用qsort库函数,qsort库函数调用用户编写的回调函数
思路:首先用C语言函数库#include
int cmp(const void* _a, const void* _b) {
int a = *(int*)_a, b = *(int*)_b;
return a - b;
}
bool containsDuplicate(int* nums, int numsSize) {
qsort(nums, numsSize, sizeof(int), cmp);
for (int i = 0; i < numsSize - 1; i++) {
if (nums[i] == nums[i + 1]) {
return true;
}
}
return false;
}
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/contains-duplicate/solution/cun-zai-zhong-fu-yuan-su-by-leetcode-sol-iedd/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
#include#include int cmp(const void* _a, const void* _b) { int a = *(int*)_a, b = *(int*)_b; return a - b; } int main() { int nums[4] = { 1,3,2,4 }; int numSize = 4; int i; qsort(nums, numSize, sizeof(int), cmp); for (i = 0; i < numSize - 1; i++) { if (nums[i] == nums[i + 1]) return true; } return false; } //输出:0



