![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
weixin_45969256
这个作者很懒,什么都没留下…
展开
-
初级班第三课(2)
题目一:用数组结构实现大小固定的队列和栈。题目二:实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。【要求】pop、push、getMin操作的时间复杂度都是O(1)。设计的栈类型可以使用现成的栈结构。题目三:如何仅用队列结构实现栈结构?如何仅用栈结构实现队列结构?题目四:猫狗队列 【题目】 宠物、狗和猫的类如下:public class Pe...原创 2019-12-27 06:49:02 · 68 阅读 · 0 评论 -
初级班第三课(1)
本章主要涉及到的问题是线性数据结构,主要包括栈(stack),队列(queue),双端队列(deque)和列表(list),它们数据的排列顺序取决于其添加或删除单个数据的方式。线性数据结构可以被认为有两个“端点”,我们可以给这两个端点命名为 “前端点”,“后端点” 或者 “左端点,“右端点” 亦或者 “上端点”,“下端点”。各种线性数据结构的主要区别在于当我们增加或者删除新的项时,它们是如何改变...翻译 2019-12-24 09:14:45 · 211 阅读 · 0 评论 -
初级班第二课
随机快排快排:quick sort。分治算法;把一个序列分成较大的和较小的2个子序列,然后递归地排列两个子序列。步骤:挑选基准值:从数列中任意挑一个元素,成为“基准”(pivot),和最后一个元素进行交换;分割:重新排列数列,所有比基准值小的元素摆放在基准的前面,所有比基准值大的元素摆在基准后面(与基准相等的数可以放到任何一边)。在这个分割结束之后,对基准值的排序就已经完成;递...原创 2019-12-10 20:07:02 · 132 阅读 · 0 评论 -
初级班第一课
时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。譬如数组寻址或者加减乘除运算等操作。时间复杂度:在一个算法流程中,常数操作数量的指标,常用O(big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(f(N))。注意:评价一个算法流程的好坏,先看时间复...原创 2019-12-07 12:51:53 · 113 阅读 · 0 评论