注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

AP计算机众里寻他千百度,名师成就满分路

AP计算机

 
 
 

日志

 
 
关于我

大学讲师,中国首批AP计算机教师,著有中国第一套,历经五年实践证明深受学生欢迎的成功的AP计算机双语教材,2013年以93%的满分率开创了中国AP计算机成功的先河,远远超出全美26.6%的满分率,为中国AP计算机教学树立了典范,并在同年加拿大计算机竞赛中勇夺桂冠,任教学生获哥伦比亚大学,麻省理工学院,卡耐基梅隆大学,宾夕法尼亚大学,康奈尔大学,西北大学等学校录取,远程学生遍及北京、长春、南京、重庆、广州、济南, 深圳、成都、费城,洛杉矶,加州,宾州,新罕布什尔州等地,希望借此平台为信息技术的发展做出贡献!

网易考拉推荐

二分查找的JAVA,及Python实现  

2015-06-08 23:07:07|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Here is a program for searching

/**

 * @author George  Tel:13242019966 QQ:1060175157

 * @date:Jun 12, 2012 10:15:35 PM

 */

public class BinarySearch{

    public static int binarySearch(int[] a, int key) {

        int low = 0;

        int high = a.length - 1;

        while (low <= high) {

            int mid = (low + high) / 2;

            if (key== arr[mid]) {

                return mid;//不能改写 pos=mid;

        /*错误的关键处,需要的是返回结果,结束程序运行,而不是赋值,单单赋值,即使相等,程序会继续向下执行,而不是返回下标终止执行,所以最终不会有结果*/

            } else if (key < arr[mid]) {

                high = mid - 1;

            } else {

                low = mid + 1;

            }

        }

        return -1;//表示查找失败,不能改写成 return pos;

    }

    public static void main(String[] args) { 

      int arr[] = {12, 24, 30, 68, 70};

      int value=24;

      System.out.println("========使用循环二分查找=========");

      int place = binarySearch(arr, value);

      System.out.println("place:" + place);

    }        

}

def binarySearch(a,key):
low=0
high=len(a)-1
while low<=high:
mid=(low+high)//2
if a[mid]==key:
return mid
elif a[mid]>key:
high=mid-1
else:
low=mid+1
return -1
a=[10,20,30,40,50]
#you can change any key
key=100
pos=binarySearch(a,key)
print(pos)


1 #!/usr/bin/env python
2 # file name - BinarySearch.py
3  
4  def BSearch(li, key):
5 """
6 Binary Search: Use Recursion
7 but the solution cannot return the position
8 """
9 low = 0
10 high = len(li)
11 mid = (high+low) / 2
12 try:
13 if key == li[mid]:
14 print li[mid] # return the key you want, without its position
15   if key < li[mid]:
16 return BSearch(li[low:mid], key)
17 if key > li[mid]:
18 return BSearch(li[mid:high], key)
19 except:
20 print "Error occured, and key %d no found." % key
21
  评论这张
 
阅读(98)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018