1,顺序查找:线性查找,通常用顺序表
ASL = (n+1)/2
查找失败n+1
顺序表优化
折半查找:
有序的顺序表,递增or递减
只能基于顺序,注意排序
int Binary_Search(SeqList L,ElemType e){
int low,high,mid;
low = 0;
high = L.length-1;
while(low <= high){
mid = (high + low)/2;
if(L.data[mid] == e){
return mid;
}
if(L.data[mid]<e){
high = mid - 1;
}
else{
low = mid + 1;
}
}
return -1;
}
在二分查找树中,左节点的个数要比右节点少0或1
一定是平衡二叉树,完全二叉树的树高h = log2(n+1)
n个结点,有n+1个失败结点
时间复杂度为O(logn)