算法导论
zhutou1280
这个作者很懒,什么都没留下…
展开
-
算法导论(C++实现) chapter 2
算法导论的第二章——算法基础 所有能用C++实现的算法都实现了一遍,包括练习题和给的伪代码!!原创 2016-11-12 22:39:14 · 763 阅读 · 0 评论 -
算法导论(c++实现)chapter4
算法导论的第四章——分治策略,主要的算法为寻找最大子数组问题,还有矩阵乘法的Strassen算法,还有一些课后的练习题,主要讲了求解递归式的三种方法:代入法(感觉像是猜测,然后用数学归纳法验证),递归树法(比较的直观明了),主方法(给出了递归式的大部分通解)。现在把该chapter的所有涉及的算法都贴上来。#include<iostream>using namespace std;//this i原创 2016-11-14 22:37:46 · 1023 阅读 · 0 评论 -
算法导论chapter6代码实现
算法导论第6章讲了堆排序和优先队列,包括最小、最大。堆排序主要由几个部分组成: 一个是维护堆的根结点最大的算法,该算法要求孩子结点已经是最大堆,否则不能调用。 第二个就是建堆算法,从不是叶子结点的第一个数开始(即n/2,假设n个数),递减到1,调用维护最大堆的算法,因为叶子结点已经是最大堆,从后调用已经满足最大堆的性质。 第三个算法就是堆排序的算法,该算法思想是用根结点与最后一个结点的元素互换原创 2016-12-01 11:10:14 · 414 阅读 · 0 评论 -
算法导论 直接寻址表
算法导论 第11章 散列表11.1 直接寻址表如果某应用要用到一个动态集合,其中每个元素都是全域U={0,1….,m}中的一个关键字 为表示动态集合,使用数组。称为直接寻址表,记为T[m],其中每个位置称为一个槽slot,对应于全域中的一个关键字 槽k指向集合中一个关键字为k的元素。如果该集合中没有关键字为k的元素,则T[k]=NIL;程序实现思路:可以用静态数组实现,因为数组的下标等于关键字原创 2017-03-19 19:39:53 · 2241 阅读 · 0 评论 -
CLRS第10章 基本数据结构——栈和队列
算法导论的第10章内容—基本数据结构的总结和习题的解答。10.1 栈和队列栈和队列都是动态集合,且在其上进行的DELETE操作所移除的元素都是预先设定的。栈上DELETE的元素是最近插入的元素,队列是在集合中存在时间最长的元素。栈是一种后进先出的策略(LIFO),队列是一种先进先出的策略(FIFO)。 栈上的INSERT操作为PUSH,DELETE操作为POP。 队原创 2017-03-10 19:37:42 · 533 阅读 · 0 评论 -
散列函数
散列表11.3 散列函数好的散列函数的特点:一个好的散列函数应满足简单均与假设,每个关键字被等可能的散列到m个槽位中的任何一个,并与其他关键字已散列到哪个槽位无关。将关键字转化为自然函数 多数关键字都假定关键字的全域为自然数集N={0,1,2…},如果所给关键字不是自然数,需要找到一种方法来将它们转换为自然数。一个字符串可以被转换为适当的基数符号表示的整数。如将pt表示为十进制整数对(112原创 2017-03-22 16:52:26 · 1840 阅读 · 0 评论 -
散列表
第11章 散列表11.2 散列表直接寻址表的缺点:全域U很大时,存储U的表占用空间太大,计算机内存可能存储不了这个,并且实际的关键字集合很小,可能用不了这么多的空间,造成浪费。如果用散列表来存储,虽然查找一个元素的时间是O(1),但是这个界的前提是在简单均匀假设下成立的平均性能界,对于直接寻址表来说,O(1)是最差寻址时间。运用散列表存储可能产生一个问题:由于关键字全集大,而存储集合小,可能出原创 2017-03-22 15:17:25 · 502 阅读 · 0 评论 -
算法导论 开放寻址法
散列表11.4 开放寻址法开放寻址法中,所有的元素都存放在散列表里,每个表项或包含动态集合的一个元素或者NIL。当查找某个元素时,要系统的检查所有表项,直到找到所有的元素或者最终查明元素不在表中。为了使用开放寻址法插入一个元素,需要连续的检查散列表,或称为探查(probe),直到找到一个空槽来放置待插入的关键字为止。检查的顺序不一定是0,1,2…m的顺序序列,而是依赖于待插入的关键字。将散列函原创 2017-03-22 20:57:41 · 2737 阅读 · 0 评论 -
算法导论 二叉搜索树
第12章 二叉搜索树12.1 什么是二叉搜索树二叉搜索树是以一棵二叉树来组织的,可用链表结构表示,每个结点是一个对象,包含属性key和卫星数据,还有结点指针left、right、parent,分别指向左孩子、右孩子和双亲。对任何结点x,其左子树的关键字最大不超过x.key,其右子树的关键字最小不小于x.key。不同的二叉搜索树可以代表同一组值的集合大部分搜索树的最坏运行时间与树的高度成正比原创 2017-03-24 21:28:26 · 809 阅读 · 0 评论