美文网首页程序员leetcode 剑指 offer
java中的移位运算符:<<,>>,>>>总结 + 二分查找

java中的移位运算符:<<,>>,>>>总结 + 二分查找

作者: 历十九喵喵喵 | 来源:发表于2020-07-05 15:58 被阅读0次

    <<      :     左移运算符,num << 1,相当于num乘以2

    >>      :     右移运算符,num >> 1,相当于num除以2

    >>>    :     无符号右移,忽略符号位,空位都以0补齐

    用于二分查找时,求中间值可以用。

    例如:

    mid = star + ( (end-star)) >> 1);//防止溢出

    二分查找的思想:二分查找也叫折半查找,是在一组有序数组中查找某一特定元素的搜索算法。

    搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果查找的元素大于或者小于中间元素,则在大于或小于中间元素的那一半数组元素中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。

    实现细节:

    定义两个下标,开始下标: star  和结束下表 end , 

    star = 0; end = arr.length -1;

    开始循环判断中间位置与 target 元素的大小:

    确定中间位置,mid = start+((end - star)) >>1

    如果相等,则返回寻找的元素或者 true;

    如果 中间位置的值大于 target ,说明 target 在 左边,此时 end 下标要移到 mid 的前一个位置,即

    end = mid -1;//往左找

    如果中间位置的值小于 target ,说明 target 在右边,此时 star 下标要移到 mid 的后一个位置,即 

    star = mid + 1; //往右找

    相关文章

      网友评论

        本文标题:java中的移位运算符:<<,>>,>>>总结 + 二分查找

        本文链接:https://www.haomeiwen.com/subject/djmeqktx.html