本文是算法设计基于动规算法的问题“最优二叉搜索树”的实现。

一、问题

最优二叉搜索树问题:

给定一个n个不同关键字已排序的序列 :

K=<k1,k2,…,kn> (k1<k2<…<kn),

我们希望用这些关键字构造一棵二叉搜索树。对每个关键字ki,都有一个概率bi表示其搜索频率。有些要搜索的值可能不在K中,因此我们还有n+1个“伪关键字”d0,d1,d2…dn表示不在K中的值。d0表示所有小于k1的值, dn 表示所有大于kn的值,对i=1,2,…,n−1,伪关键字di表示所有在ki和ki+1之间的值。对每个伪关键字di,也都有一个概率ai表示对应的搜索频率。

二、环境

电脑硬件配置:

  • 处理器:Intel i7 7700HQ

  • 显卡:NVIDIA GeForce GTX 1050 Ti

  • 内存:16GB

软件:

  • 编程语言:C++

  • IDE:Microsoft Visual Studio 2019

  • Windows SDK版本:10.0

  • 平台工具集:Visual Studio 2019(v142)

三、项目地址

本项目的源码、可执行程序均已经存放于我的Github,欢迎下载查看:

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

载入天数...载入时分秒...