1 二分查找算法
二分查找的基本思想是将n个元素分成大致相等的两部分,去a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分 继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x.
时间复杂度无非就是while循环的次数!
总共有n个元素,
渐渐跟下去就是n,n/2,n/4,....n/2^k,其中k就是循环的次数
时间复杂度 T(n) = log2n,优点,查找效率高,,,缺点,必须是有序数组,插入,删除性能很差
算法java实现:JDK Arrays类里面有个binarySearch
参考 树搜索算法 http://hi.baidu.com/jjgjklk/item/9924e3a01f633b258919d305
平衡二叉树跟B树 http://wenku.baidu.com/view/2d2775270722192e4536f634.html