查找之二折半查找(二分法查找)和插值查找
Posted XuGuobao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找之二折半查找(二分法查找)和插值查找相关的知识,希望对你有一定的参考价值。
一、折半查找的前提是线性表中的记录必须好似关键码有序,线性表必须是顺序存储的。
二、折半查找
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);
以上是关于查找之二折半查找(二分法查找)和插值查找的主要内容,如果未能解决你的问题,请参考以下文章
Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性二分,分块插值查找算法)