美文网首页
数据结构与算法-静态最优查找树

数据结构与算法-静态最优查找树

作者: 星空下奔跑 | 来源:发表于2018-03-31 22:32 被阅读0次

静态最优查找树

当有序表中每个记录的查询概率相同时,用折半查找性能最优。当有序表的查找概率不等时,折半查找的概率未必最优。
若只考虑查找成功的情况,则使查找性能最优的判定树其带权路径长度之和为PH值。
PH=∑wihi
hi为第i个结点在二叉树上的层次数;结点的权wi=c*pi,pi为第i个结点的查找概率,c为某个常量。
称PH值最小的二叉判定树为静态最优查找树(Static Optimal Search Tree).

次优查找树(Nearly Optimal Search Tree)

构造次优查找树的方法:首先在记录序列中取第i个记录构造根结点,使得左部分序列的累计权值和与右部分序列的累计权值和差的绝对值最小;再对左右子序列分别构造次优查找树。

void SecondOptimal(BiTree &T,ElemType R[],float sw[],int low,high){
    i=low;
    min=abs(sw[high]-sw[low]);
    dw=sw[high]+sw[low-1];
    for(j=low+1;j<=high;++j){
        i=j;min=abs(dw-sw[j]-sw[j-1]);
    }//for
    T=(BiTree)malloc(sizeof(BiNode));
    T->data=R[i];
    if(i==low)T->lchild=NULL;
    else SecondOptimal(T->lchild,R,sw,low,i-1);
    if(i==high)T->rchild=NULL;
    else SecondOptimal(T->rchild,R,sw,i+1,high);
}//SecondOptimal

相关文章

  • 数据结构与算法-静态最优查找树

    静态最优查找树 当有序表中每个记录的查询概率相同时,用折半查找性能最优。当有序表的查找概率不等时,折半查找的概率未...

  • 数据结构与算法

    数据结构线性与非线性数组、链表、栈、队列、树、图 树二叉树:顺序,最优、线索、搜索,平衡多路查找树3、排序算法4、...

  • 数据结构与算法--散列表

    数据结构与算法--散列表 之前学习了基于链表的顺序查找、基于有序数组的二分查找、二叉查找树、红黑树,这些算法在查找...

  • 数据结构与算法——单词查找树

    数据结构与算法——单词查找树 单词查找树由字符键中的所有字符构造而成,和各种查找树一样,单词查找树也是由结点链接所...

  • 数据结构与算法 树 引言 顺序查找 ​ 哨兵的方式 ​ 时间复杂度为O(N) 二分查找查找树的形式我...

  • 《数据结构与算法》知识点(四)

    第七章 查找 顺序查找、折半查找、索引查找、分块查找是静态查找,动态查找有二叉排序树查找,最优二叉树查找,键树查找...

  • 音视频开发之旅(27) 算法序列 - 二叉查找树

    目录 常见的查找数据结构和算法介绍 二叉查找树 资料 收获 一、常见的查找数据结构和算法介绍 1.1 链表(顺序查...

  • 数据结构与算法-静态查找

    顺序表查找 试想一下,要在散落的一大堆书中找到你需要的那本有多么麻烦。碰到这种情况的人大都会考虑做一件事,那就是把...

  • 查找

    静态查找顺序查找 折半查找 散列查找 动态查找二叉排序树 散列查找 ASL(平均查找长度) - 衡量查找算法效率的...

  • (313)红黑树-java实现

    引言 根据《算法》第4版。编写红黑树。 理论 参见: 浅谈算法和数据结构: 八 平衡查找树之2-3树 浅谈算法和数...

网友评论

      本文标题:数据结构与算法-静态最优查找树

      本文链接:https://www.haomeiwen.com/subject/ndzvcftx.html