算法导论
Claire_TJ
今天也要加油鸭!
展开
-
随机算法之雇用问题
问题描述:假如你要雇用一个新的办公助理。你找了一个雇用代理,这个雇佣代理每天给你推荐一个应聘者。你面试这个人,决定是否录取他。你需要付的钱分为几部分:一部分给雇用代理,一部分用于雇用应聘者。最近在学算法导论,这是第五章的内容。随机算法,我百度搜出来的解释是:“一个随机算法是一种算法,它采用了一定程度的随机性作为其逻辑的一部分。该算法通常使用均匀随机位作为辅助输入来指导自己的行为,超过随机位的所...原创 2018-10-02 13:54:11 · 705 阅读 · 0 评论 -
《算法导论》第23章——最小生成树
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!23.1最小生成树的形成在上图中,就是边cd。这两个定理看不懂没关系,不影响后面学习Kruskal算法与Prim算法。23.2Kruskal算法和Prim算法K...原创 2018-11-10 15:14:03 · 1243 阅读 · 0 评论 -
《算法导论》第24章——单源最短路径
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!最短路径的最优子结构最短路径的子路径也是最短路径。负权重的边权重为负数的边。(我的理解:大概知道这个就可以了)环路最短路径既不能包含正的环路,也不能包含负的环路。(...原创 2018-11-10 20:24:01 · 1000 阅读 · 0 评论 -
《算法导论》第十九章——斐波那契堆
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!可合并堆可合并堆是支持以下5种操作的一种数据结构,其中每个元素都有一个关键字:MakeHeap():创建和返回一个新的不含任何元素的堆Insert(H,x):将一个已填入关...原创 2018-11-07 23:54:21 · 1065 阅读 · 1 评论 -
《算法导论》第十八章——B树
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!B树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡搜索树。B数与红黑树的不同之处在于B树的结点可以有很多个孩子。18.1B树的定义一棵B树T具有以下性质(根为T.r...原创 2018-11-05 16:57:10 · 405 阅读 · 0 评论 -
《算法导论》上机总结
突然想到把所有的上机都总结一下。如果有错误还请不吝斧正。目录实验一 排序算法实验二 Strassen’s 矩阵乘法和最近点对算法实验三:作业排程和最长共同子序列算实验四:单源最短路径和全点对最短路径算法首先说明一下代码格式:我这边所有的东西基本都写到 了一起。就像这样:然后运行的时候只要把我代码中的Test函数放到主函数里就可以了。就像这样(记得把头文件加...原创 2018-11-14 11:22:36 · 1516 阅读 · 3 评论 -
插入排序
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。 插入排序可分为直接插入排序和二分插入排序。直接插入排序: 我的理解:一个一维数组arr,第一位也就是arr[0]为空,我真正的数组在arr[0]到arr[n]的部分,也就是说,数组后半部分是未排序的,前面是已经排序...原创 2018-10-05 23:32:49 · 181 阅读 · 0 评论 -
冒泡排序
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正! 冒泡排序: 我们首先来看一下百度百科对“冒泡排序”的定义:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。...原创 2018-10-08 23:30:40 · 122 阅读 · 0 评论 -
归并排序
原创 2018-10-09 20:37:23 · 223 阅读 · 0 评论 -
选择排序
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正! 选择排序:每次遍历没有排序的数组,从中选出最小的数,放到最前面。 这个排序一句话就可以概括了,反正我懂了,如果你不懂的话就推荐你去看这个网站:https://www.cnb...原创 2018-10-09 21:09:34 · 168 阅读 · 0 评论 -
《算法导论》第22章——基本的图算法
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!图的搜索指的是系统化地跟随图中的边来访问图中的每个结点。22.1图的表示权重图:图中的每条边都带有一个相关的权重的图。该权重值通常由一个w:E→R的权重函数给出。例如,...原创 2018-11-09 14:50:22 · 1676 阅读 · 0 评论 -
《算法导论》第十七章——摊还分析
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!在摊还分析中,我们求数据结构的一个操作序列中所执行的所有操作的平均时间,来评价操作的代价。17.1聚合分析利用聚合分析,我们证明对所有n,一个n个操作的序列最坏情况下话费的总...原创 2018-11-03 19:33:08 · 922 阅读 · 0 评论 -
《算法导论》第十六章——贪心算法
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!贪心算法并不保证能得到最优解,但对于很多问题确实可以得到最优解。贪心算法,如它的名字一样,十分“贪心”。如果说,动态规划是一位深谋远虑的智者,那么贪心算法就是一个目光短浅的山贼...原创 2018-11-03 16:32:14 · 992 阅读 · 0 评论 -
《算法导论》第六章——堆排序——优先队列
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正! 最近在学习《算法导论》,这里是我对第六章的学习心得。有什么补充的欢迎在评论交流。以下是我认为的一些知识点,就是我学习到的一些东西。第六章堆排序6.1堆 (二叉)堆是一个数...原创 2018-10-11 14:16:34 · 467 阅读 · 0 评论 -
《算法导论》第七章——快速排序
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!7.1快速排序的描述 我看了一下书的内容,感觉并不是很,emmmm就是很看得懂吧,可能我太菜鸡了。我们在网上看到的函数一般就是直接一个quicksort,在《算法导论》里,它把这...原创 2018-10-12 15:11:53 · 398 阅读 · 0 评论 -
《算法导论》第八章——线性时间排序(计数排序、基数排序)
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!8.1排序算法的下界 这一节讲了“决策树模型”,为什么要讲这个呢,就是为了告诉你两个定理:①在最坏情况下,任何比较排序算法都需要做Ω(nlgn)次比较。②堆排序和归并排序都是...原创 2018-10-12 20:13:20 · 281 阅读 · 0 评论 -
第十一章——散列表
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!堆排序.h堆排序.cpp主函数运行结果参考网站以及博客:...原创 2018-10-17 23:03:40 · 197 阅读 · 0 评论 -
《算法导论》第十章——基本数据结构(栈、队列、链表)
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!10.1栈和队列 栈(stack)又名堆栈,遵循后进先出原则。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称...原创 2018-10-14 16:37:05 · 342 阅读 · 1 评论 -
第十四章——数据结构的扩张
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!14.1动态顺序统计n个元素结合中第i个顺序统计量就使该集合中的具有第i小关键字的元素。本节介绍如何修改红黑树,使得在O(lgn)的时间内确定任何的顺序统计量。顺序统计树T...原创 2018-10-25 15:08:05 · 181 阅读 · 0 评论 -
《算法导论》第十二章——二叉搜索树
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!12.1什么是二叉搜索树 一棵二叉搜索树是以二叉树来组织的。除了key和卫星数据之外,每个结点还包含属性left、right和parent,它们分别指向结点的左孩子、右孩子和父亲...原创 2018-10-21 18:45:48 · 416 阅读 · 0 评论 -
《算法导论》第十三章——红黑树
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正! 红黑树是许多“平衡”搜索树中的一种,可以保证在最坏情况下基本动态集合操作的时间复杂度为O(lgn)。13.1红黑树的性质 红黑树是一棵二叉搜索树,它在每个结点上增加了一份...原创 2018-10-24 17:36:36 · 315 阅读 · 0 评论 -
《算法导论》第十五章——动态规划
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!动态规划(dynamic programming)与分治方法相似共同点:通过组合子问题的解来求解原问题的解。不同点:分治方法求解互不相交的子问题,动态规划应用于子问题重叠的情况...原创 2018-11-01 16:31:55 · 3421 阅读 · 1 评论 -
二叉树的前序、中序、后序遍历
虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正! 前序遍历(DLR),是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。 看图就很清晰,我就不阐述我的...原创 2018-10-10 11:37:22 · 460 阅读 · 0 评论