算法笔记P2—220120
1.二分法
1.不一定要有序:根据数据特性(排他性)
2.异或运算
1.交换两数
无进位相加
满足交换和结合率
n^0=n n^n=0
ab指向内存不能相同,内容可以相同。
2.一个数组中有一种数出现奇数次,其他出现偶数次,找到这种数。
设置变量eor=0,与所有数异或,最后得到这个数。
3.把一个int型数,提取出最右侧的1。
n&(~n+1)
4.找出俩个奇数,其他都为偶数
第一次异或结果可以将数据分为两类(就是将原数组拆分为两个分别含有一个奇数的数组),某位是1或某位是0,ab这位是不同的,再次异或这位为一的数,得到a,第一二次异或结果异或,得到b。(某位指eor不为0的一位,可以找最右侧1)
5.二进制有多少位1