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

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

二、折半查找

 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);

转载于:https://www.cnblogs.com/XuGuobao/p/7287696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值