【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;
}

 

posted @ 2020-09-05 14:34  温暖了寂寞  阅读(157)  评论(0编辑  收藏  举报