Java数据结构之二分搜索_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java数据结构之二分搜索

Java数据结构之二分搜索

 2011/10/20 8:10:46  luliangy  http://luliangy.iteye.com  我要评论(0)
  • 摘要:二分搜索简单说就是在一个有序的数组中利用二分法的方法搜索我们需要的元素O(logn)。直接看代码!importjava.util.Arrays;/***用java语言实现二分搜素*@authorAdministrator**/publicclassBianarySerch{publicstaticvoidmain(String[]args){//定义一个数组,数组必须是有序的,二分查找只能针对有序表;int[]a={1,2,4,22,33,34,45,48,102,302}
  • 标签:数据结构 Java 数据
二分搜索简单说就是在一个有序的数组中利用二分法的方法搜索我们需要的元素O(logn)。
直接看代码!


import java.util.Arrays;

/**
* 用java语言实现二分搜素
* @author Administrator
*
*/
public class BianarySerch {


public static void main(String[] args) {
//定义一个数组,数组必须是有序的,二分查找只能针对有序表;
int[] a={1,2,4,22,33,34,45,48,102,302};
int keyType=22;
//数组排序
Arrays.sort(a);
int ans=BinaSerch(a,keyType);
if(ans==-1){
System.out.println("表中没有该元素");
}else{
System.out.println("已经找到元素,在表中的位置是:"+ans);
}
}

/**
* 二分查找法;
* @param a--数据表;
* @param keyType
*/
public static int BinaSerch(int [] a, int keyType){
int mid;//中间变量;
//定义位置标记;
int start=0,end=a.length-1,site;
while(start<=end){
site=(start+end)/2;
mid=a[site];//取中间值;
if(mid==keyType){
return site;
}else if(mid<keyType){
start=site+1;
}else{
end=site-1;
}
}
return -1;//表示没有找到该元素;
}

}
发表评论
用户名: 匿名