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博客讲解: