码迷,mamicode.com
首页 > 其他好文 > 详细

查找之二折半查找(二分法查找)和插值查找

时间:2017-08-05 00:04:24      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:复杂度   有序   查找   sys   seq   while   return   logs   ret   

一、折半查找的前提是线性表中的记录必须好似关键码有序,线性表必须是顺序存储的。

二、折半查找

 1 public class Binary_SearchDemo01 {
 2     static int[] num = {0,1,3,5};
 3     public static void main(String[] args) {
 4         int key = 3;
 5         int x = Sequential_Search(key);
 6         System.out.println(num[x]);
 7     }
 8     private static int Sequential_Search(int key) {
 9         int low,mid,high;
10         low = 1;
11         high = num.length-1;
12         while(low <= high){
13             mid = (low + high)/2;
14             if(key<num[mid]){                
15                 high = mid-1;
16             }    
17             else if(key>num[mid]){
18                 low = mid+1;        
19             }else{
20                 return mid;
21             }
22         }
23         return 0;
24     }
25 }

折半查找的时间复杂度为O(logn);

查找之二折半查找(二分法查找)和插值查找

标签:复杂度   有序   查找   sys   seq   while   return   logs   ret   

原文地址:http://www.cnblogs.com/XuGuobao/p/7287696.html

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