博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言快排函数调用方法模板
阅读量:4070 次
发布时间:2019-05-25

本文共 765 字,大约阅读时间需要 2 分钟。

力扣剑指offer第39题:数组中出现次数超过一半的数字

为了qsort适用于任何结构的数组,comp函数的参数是两个const void类型的变量,使用时根据结构的不同进行转换,这里显然是在排序int型数组 (int)a的意思是,将a转换为int类型,即将空类型指针数据转换为int型指针数据,然后再解指针,得到其值,返回a-b的值,comp会根据这个值来判断a和b的顺序,从而完成排序 如果你在comp函数中加上输出,就可以很明显看到排序的过程了 你可以试一下a-b和b-a分别是从小到大和从大到小,qsort是quick sort的简写,其实就是快速排序,所以每次就比较两个值 qsort的调用方法是 void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); base是指针入口,nelem是排序的元素个数,width是元素大小,comp就是比较函数了 所以这里如果int a[10]={23,44,12,42,14,35,47,31,9,20}; qsort(a, 10, sizeof(int), comp); 这样就可以排序了

#include
int cmp(const void* a, const void* b) {
return *(int*)a - *(int*)b;}int majorityElement(int* arr, int numsSize){
int res; qsort(arr, numsSize, sizeof(int), cmp); res = arr[numsSize / 2]; return res;}

转载地址:http://ehmji.baihongyu.com/

你可能感兴趣的文章
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
备忘:java中的递归
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>