二分法求数组中比X小的元素个数
来源:互联网 发布:js文本框只能输入数字 编辑:程序博客网 时间:2024/04/30 23:52
根据之前的关于三类二分法的探究 我们知道关于二分法们可以选择left < right -1来维护一个左右元素的性质使得我们能够使用二分对目标元素找到一个范围类似 a[left] < x a[right]>=x
如果我们想要实现这个目标,只需要在
while(left < right -1){ middle = ( right + left )/2; if( a[middle]>= x ) right = middle; else left = middle; } if(a[right] == x) return right; else return -1;
if(a[right]==x) return right\\因为包括前面的a[0]
else return right;
如果这个元素很小,那么在最后right = left+1 = 1 return rigth意味着比需要的位置多1个
如果这个元素很大,那么在最后left = right -1,也还是right = left +1的位置的位置上,return right 意味着比需要的位置少1个
所以不能简单地return left 或者right,需要两个判断
if(x<a[0]) return 0;if(x>a[right]) return right+1;
0 0
- 二分法求数组中比X小的元素个数
- 求任意区间里比x小的数的个数(树状数组)
- 求数组中不同元素的个数
- 入门树状数组(左边比x小的个数)
- 求数组中元素个数
- 根据数组名求数组中元素的个数
- 二分法查找有序数组中某元素个数
- 求大数据量数组中不重复元素的个数
- java 求数组中重复元素的个数
- 美团2017校招(内推):计数:count(i)表示数组中第i 个元素后比其小的元素个数
- hdu4417 树状数组(求指定区间比指定数小的数的个数)
- 求数组元素个数
- 【树状数组 求比其小的个数】poj 2353 Stars
- 在数组中 找左边都比其小右边都比其大的元素
- 求数组中第k个小的元素
- 中位数------求数组中第i小的元素
- 求无序数组中第二小的元素
- 求数组中第n大(小)的元素
- 15 电气 齐振昊 VB中两位数乘一位数
- 获取某个目录下的文件名称
- 和学生们的合影-20160417-wangdongs-wangx
- 4.内存非连续分配管理方式
- 链表的逆序
- 二分法求数组中比X小的元素个数
- Strange fuction
- Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
- 数据通信基础(物理层)学习笔记
- BCGControlBar使用方法
- AngularJS学习笔记—事件指令
- POJ3176-Cow Bowling
- 第八周项目三 指向学生类的指针
- ibatis 中的#与$