码迷,mamicode.com
首页 > 编程语言 > 详细

【算法数据结构Java实现】折半查找

时间:2014-11-24 22:29:01      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:数据结构   算法   

1.背景

       以一个题目为例,一个整数x是一组按大小顺序排列好的数列中的一个数,我们要找到x在数列中的索引位置。

比如按从小到大排列的数列:

-3,-2,0,4,5,7,12,64

我们要找到数字7的位置,如果是线性查找,时间复杂度是O(n),如果用折半查找的话,时间复杂度是O(log(n)),因为每次折半,计算量少一半,所以取对数。


2.代码

package Algorithm_analysis;

public class Bisearch {

	static int[] array={-3,-2,0,4,5,7,12,64}; 
	public static void main(String args[]){
	   int left=0;
	   int right=array.length;
	   int center=0;
	   int k=7;
	  
	   while(left<=right){
		  center=(right+left)/2;
		   if ((array[center]-k)==0){
			  System.out.print(center);
			  break;
		   }
		   else{
            if((array[center]-k)>0){
                 right=center;
            }
                 else{
                	 left=center;
                 }
                	 }
                 }
	   }
}
	
	
//输出结果7	

/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/



【算法数据结构Java实现】折半查找

标签:数据结构   算法   

原文地址:http://blog.csdn.net/buptgshengod/article/details/41455009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!