【leetcode】根据数字二进制下 1 的数目排序

int Fun(int x){
    int res=0;
    while (x) res+=x&1,x>>=1;
    return res;
}
int Mycmp(const void* a,const void* b){
    return (Fun(*(int*)a) - Fun(*(int*)b))? Fun(*(int*)a) - Fun(*(int*)b):*(int*)a - *(int*)b;
}
int* sortByBits(int* arr, int arrSize, int* returnSize){
    qsort(arr,arrSize,sizeof(int),Mycmp);
    *returnSize = arrSize;
    return arr;
}
原文地址:https://www.cnblogs.com/ganxiang/p/13935068.html