摘要: 题目描述现有一些随机生成的数字要将其依次传入,请设计一个高效算法,对于每次传入一个数字后,算出当前所有传入数字的中位数。(若传入了偶数个数字则令中位数为第n/2小的数字,n为已传入数字个数)。 使用优先队列创建一个最大堆和一个最小堆,最大堆存放较小的元素,最小堆存放较大的元素,且始终保持最大堆的元素 阅读全文
posted @ 2019-07-25 09:55 ppwq 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 顺序查找 二分查找 插值查找:基于二分查找算法,将查找点的选择改进为自适应选择,可以提高查找效率。当然,差值查找也属于有序查找。具体为: 斐波那契查找 树表查找: 二叉查找树平均查找性能不错,为O(logn),但是最坏情况会退化为O(n)。在二叉查找树的基础上进行优化,我们可以使用平衡查找树。平衡查 阅读全文
posted @ 2019-07-23 16:42 ppwq 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序:从无序区通过交换找出最大元素放到有序区前端。 选择排序:从未排序序列中找到最小(大)元素,存到已排序序列的起始位置。 插入排序: 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,将该元素移到下 阅读全文
posted @ 2019-07-22 22:33 ppwq 阅读(165) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; int main() { int num, sum = 0; while (cin >> num) { sum += num; } cout << sum << endl; return 0; } 阅读全文
posted @ 2018-10-08 22:32 ppwq 阅读(338) 评论(0) 推荐(0) 编辑
摘要: C++标准中规定的:main函数的返回值应该定义为int类型。 对于”void main(void);”这种错误形式,虽然在一些编译器中可以通过编译(如vc6),但并非所有的编译器都支持。 main()函数的原型是: 阅读全文
posted @ 2018-10-08 20:10 ppwq 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: 信息熵: 阅读全文
posted @ 2018-09-09 16:35 ppwq 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 雅格布森通信六要素:发送者,信道,接受者,信息,上下文和编码。 马尔科夫假设:随机过程中各个状态的概率分布只与它的前一个状态有关。满足这个假设即为马尔科夫过程(马尔科夫链)。 隐马尔可夫模型:任意时刻t的状态s是不可见的,但是其输出o是可见的,且o有且仅和s相关(独立输出假设)。 训练算法:鲍姆-韦 阅读全文
posted @ 2018-09-09 16:24 ppwq 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 从基于规则到基于统计的语言模型的转变 基于马尔科夫假设,即任意一个词出现的概率只与它前面的词有关,可得到一个二元模型。乃至基于一个N-1阶马尔科夫假设,对应的语言模型是N元模型。一般N取值非常小,通常为2,可取到3或者4。 对于样本中未出现的零概率问题,使用古德-图灵估计方法进行平滑处理。对于出现频 阅读全文
posted @ 2018-09-04 09:12 ppwq 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 一棵二叉查找树(BST)是一棵二叉树,其中每个结点都含有一个Comparable的键(以及相关联的值)且每个结点的键都大于其左子树中的任意结点的键而小于右子树的任意结点的键。 基于二叉查找树的符号表 在N个随机键构造的二叉查找树中,查找命中平均所需的比较次数为~2lgN(约1.39lgN),插入和查 阅读全文
posted @ 2018-05-17 22:03 ppwq 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 无序链表的顺序查找 向一个空表插入N个不同的键需要N2/2次比较,一次查找所需比较数,采用随机命中的话是N/2,说明基于链表的实现和顺序查找是非常低效的。 有序数组中的二分查找 N个键的有序数组进行二分查找最多需要(lgN+1)次比较。 阅读全文
posted @ 2018-05-16 20:40 ppwq 阅读(275) 评论(0) 推荐(0) 编辑