总结: ASL = log2(n+1) – 1
时间复杂度 O( logn ) 底是2
then 应用范围顺序存储的,然后有序的
copy a world:
通过比较折半查找的平均查找长度,同前面介绍的顺序查找相对比,明显折半查找的效率要高。但是折半查找算法只适用于有序表,同时仅限于查找表用顺序存储结构表示。
当查找表使用链式存储结构表示时,折半查找算法无法有效地进行比较操作(排序和查找操作的实现都异常繁琐)。next target: 平衡二叉树 思想 平衡操作 特性
Add平衡 del平衡
RR LL LR RL
基础模型,算法实现:
C程序:
#include "stdio.h" typedef int ElemType; ElemType array2[] = {0,5,7,9,8,4,2,5,6,1,3,9,1,4,7,8,156,12,54,3,47,100}; // return -1 Fail 0 Success int half_Search(ElemType array[], int n, ElemType key) { int low = 0; int high = n; int mid; for(int i = 0; i < n ;++i) { mid = (low + high) / 2; //there is no doubt that 除舍 if( key == array[ mid ] ) return mid; else if( key < array[ mid ]) high = mid - 1; else low = mid + 1; } return -1; } int main() { int a; for(int i = 0; i < 150 ;++i){ a = half_Search(array2, 22, i); printf("%d\t",a); } printf("\n\t Search End \t\n"); }
完事