二分查找这个概念是非常简单的一个算法,也就是我们俗称的折半查找,原理是在一个有序的数组中,先取中间的值,如果中间值大于或者小于我们需要查找的值,那么就舍弃一般,在另一半中进行查找.
下面是一个简单的二分查找:
package com.hotusm.algorithm.insertvaluesearch;import java.util.Arrays;/** * @author Hotusm * @date 2017年4月3日 * @description */public class InsertValueSearch { public static boolean search(int[] arr,int key,int left,int right){ while(left
这种方式的查找其实是将值构造成了一颗二叉排序数,然后进行查找.这种搜索的好处在于大大的缩短了搜索时间,时间复杂度为logn 小于线性的n
而插值查找则比较灵活,并不是简单的从中间进行的,它是根据我们需要查询的值的渐进进行搜索的.
插值查找的不同点在于每一次并不是从中间切分,而是根据离所求值的距离进行搜索的.
下面是算法:
package com.hotusm.algorithm.insertvaluesearch;import java.util.Arrays;/** * 插值查找 * @author Hotusm * @date 2017年4月3日 * @description */public class InsertValueSearch { public static boolean search(int[] arr,int key,int left,int right){ while(left