算法笔记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

                

 

 

 

 

 

    

 

posted @ 2022-01-20 22:35  rippleD  阅读(32)  评论(0)    收藏  举报