07 2022 档案
发表于 2022-07-29 11:28阅读:358评论:0推荐:0
摘要:__builtin_popcount()函数 作用:__builtin_popcount ()用于计算一个 32 位无符号整数有多少个位为1 n = __builtin_popcount(val);
阅读全文 »
发表于 2022-07-29 11:18阅读:297评论:0推荐:0
摘要:== 和 &的优先级熟高? 答案:==的优先级高于&
阅读全文 »
发表于 2022-07-28 19:00阅读:87评论:0推荐:0
摘要:位运算之>>——右移 右移填充的数: 有符号数的话是最高位的那个数,正数为1,负数为0; 无符号数填充的是0,无论正负;
阅读全文 »
发表于 2022-07-25 13:55阅读:27评论:0推荐:0
摘要:1、二进制数按位依次取出 代码: for(i = 0; i<32; i++) { a[i] = val & 1; val = val >> 1; } 2、清除二进制最低位的1 x = x & (x-1) 3、综合
阅读全文 »
发表于 2022-07-25 11:42阅读:1841评论:0推荐:0
摘要:异或: 两数异或相同为0不同为1; 异或的性质: 1、任何数与自身异或都是0:a ^ a = 0; 2、任何数与0异或都是本身:a ^ 0 = a; 3、异或运算满足交换律和结合律:a ^ b ^ a = a ^ a ^ b = 0 ^ b = b; 4、a^b=c -> a^b^b=c^b ->
阅读全文 »
发表于 2022-07-19 12:38阅读:80评论:0推荐:0
摘要:经典排序算法之——堆排序 时间复杂度: O(nlogn) 空间复杂度: O(1) 什么时候用堆排序: 1、如果你要在很多元素中找很少几个top K的元素,或者在一个巨大的数据流里找到top K,堆排序更省地方。 2、另外一个适合用heap的场合是优先队列,需要在一组不停更新的数据中不停地找最大/小元
阅读全文 »
发表于 2022-07-19 10:16阅读:114评论:0推荐:0
摘要:经典排序算法之——插入排序 时间复杂度: 最好:O(n) 最坏:O(n^2) 空间复杂度: O(1) 什么时候选择插入排序: 1、n较小 2、在要排序的序列已经将顺序大致排好的时候,或者说每一个数都在他应该在的位置左右的时候用插入排序较好 图解: 代码: #include <stdio.h> #de
阅读全文 »
发表于 2022-07-18 17:04阅读:376评论:0推荐:0
摘要:经典排序算法之——快排 时间复杂度: O(nlogn) 空间复杂度: O(log2n) 什么时候用快排 1、n较大 2、快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短; 图解: 代码: #include <stdio.h> #define
阅读全文 »
发表于 2022-07-06 10:36阅读:71评论:0推荐:0
摘要:代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* addTwoNumbers(struct List
阅读全文 »
发表于 2022-07-05 16:07阅读:33评论:0推荐:0
摘要:if(x2 >= 10) { while(x2 >= 10) { y2 = y2 * 10 + x2%10; x2 = x2/10; } y2 = y2 * 10 + x2; } else { y2 = x2; }
阅读全文 »