查找算法

1.顺序查找 (线性查找)

2.二分查找(折半查找)

时间复杂度:O(logn)

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

 

3.

动态表查找

二叉排序树:二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。

  BST树

定义:二叉排序树或者是空树,或者是具有下列性质的一颗树:

  • 若他的左子树不为空,则左子树上所有结点的值均小于其根节点的值

  • 若他的右子树不为空,则右子树上所有结点的值均大于其根节点的值

  • 他的左右子树也均是二叉排序树

BST博客讲解:

http://blog.csdn.net/evankaka/article/details/48088241

 

posted @ 2018-03-03 21:13  midiyu  阅读(151)  评论(0编辑  收藏  举报