二分查找的前提的要查找的数组必须有序.

代码如下:

程序1

 public class source {

     public int binary_sort(int[] array, int item) {
int len = array.length;
int min = 0; //定义查找范围的开始
int max = len - 1; //定义查找范围的结尾
while(max > min) { //这里不能等于,不然可能死循环
if(array[min+(max-min)/2] == item) {
return (int)min+(max-min)/2;
}
else if(array[min+(max-min)/2] > item) {
max = min+(max-min)/2;
}
else if(array[min+(max-min)/2] < item) {
min = min+(max-min)/2;
}
}
return -1;
} public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7,8,9,10};
int n = -1;
source sou = new source();
System.out.println(sou.binary_sort(a, n));
}
}

程序复制下来就可以正常执行,这是自己看了原理后写的代码,网上找了例子,也贴上来对比一下

程序2

 int binary_sort(int array[], int length, int value)
{
if(NULL == array || == length)
return -; int start = ;
int end = length -; while(start <= end){ int middle = start + ((end - start) >> );
if(value == array[middle])
return middle;
else if(value > array[middle]){
start = middle + ;
}else{
end = middle -;
}
} return -;
}

和别人的代码对比发现自己代码的问题:

1.复杂表达式变量应该定义成变量.

2.程序1中开始没有是max = len,没有减一,数组下标问题要注意.同理下面的两句代码.

3.程序2计算平均值没有直接除以2,而是(end - start) >> 1,用了移位操作,这样避免产生小数,而且不用强制类型转换.

最新文章

  1. 渗透测试工具BurpSuite做网站的安全测试(基础版)
  2. 01 HDFS 简介
  3. 如何用python在Windows系统下,生成UNIX格式文件
  4. bzoj 3163: [Heoi2013]Eden的新背包问题
  5. 每日学习总结&lt;一&gt; 2015-8-31
  6. Maven学习总结
  7. 打造 PHP版本 1password
  8. 【原】使用SQLite打开本地*.db文件
  9. HW4.13
  10. Java软件系统功能设计实战训练视频教程
  11. 从PM到非洲酋长,得人心者得天下
  12. The way to unwind the stack on Linux EABI
  13. Java内存管理-JVM内存模型以及JDK7和JDK8内存模型对比总结(三)
  14. myEclipse异常:Subversion Native Library Not Available
  15. How to compute f1 score for each epoch in Keras
  16. java运行cmd命令
  17. windows使用
  18. oracle 、mysql、 sql server使用记录
  19. JavaScript JSON 数据处理
  20. 【刷题】BZOJ 3930 [CQOI2015]选数

热门文章

  1. uva 825 - Walking on the Safe Side(dp)
  2. uva 10003 Cutting Sticks (区间dp)
  3. 新浪微博布局学习——妙用TabHost
  4. Selector、shape详解,注意这两种图像资源都以XML方式存放在drawable不带分辨率的文件夹中
  5. Android ROM 制作教程
  6. Sicily 4495. Print permutations
  7. 用ADB(Android Debug Bridge)实时监测Android程序的运行
  8. linux性能监控三张图
  9. SQL server 和Oracle 序列
  10. BZOJ 1509: [NOI2003]逃学的小孩( 树形dp )