第七章 查找 三、折半查找(二分查找)

一、代码实现

此代码只能用于查找有序的顺序表

typedef struct {
    int *e;
    int len;
}SSTable;

int Search_Seq(SSTable st,int t){
    int i=0,j=st.len-1,mid;
    while (i<=j){
        mid=(i+j)>>2;
        if (t>st.e[mid]){
            i=mid+1;
        } else if (t

二、查找效率分析

第七章 查找 三、折半查找(二分查找)_第1张图片

在上图的查找判定树中,因为它的判定条件是mid = 「(low + high)/2]向上取整。

所以,右子树结点 - 左子树结点 = 0 或 1;

树高 h =\log_{2}(n+1),不包含失败节点。

如果包含失败节点的话,树高为h+1;

你可能感兴趣的:(数据结构学习,算法,数据结构)