算法
文章平均质量分 74
sssssssssnake
奥力给
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
考研算法(七) 排序
往前寻找插入位置,如果找到了大于等于它的元素或者没有找到,数组越界,查找停止,将元素插入对应位置。选择一个元素作为基数(考研通常是第一个元素),把比基数小的元素放到它左边,比基数大的元素放到它右边(相当于二分),再不断递归基数左右两边的序列。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。最好:O(nlog n) ,其他的数均匀分布在基数的两边,此时的递归就是不断地二分左右序列。最坏:O(n^2) ,其他的数都分布在基数的一边,此时要划分n次了,每次O(n)原创 2022-09-18 16:27:20 · 420 阅读 · 1 评论 -
考研算法(六) 查找
这一章确实不太常用,也不常考。原创 2022-09-18 15:45:38 · 171 阅读 · 0 评论 -
考研算法(五) 图
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。bfs就是一次将所有子结点入队,依次出队扩展新的子节点入队,同时要标记已入队的结点,避免重复入队。给定一个n个点m条边的有向图,请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。二叉树中有bfs的详细代码,就是二叉树层序遍历,那是比较普遍的写法。原创 2022-09-17 09:34:17 · 387 阅读 · 0 评论 -
考研算法(四) 二叉树
前序遍历有个口诀即头左右,我们第一次访问的结点就是当前子树的头结点,所以直接压入栈即可。中序遍历的顺序为左头右,我们先保证最左的结点先被处理,只需将从头结点到最左的结点全部压入即可。这里设置最近访问结点的原因在于我们不能判断这是从头结点的最左结点返回的还是从当前头结点的右子树的头结点的最左结点返回的。中序遍历的顺序为左头右,我们先保证最左的结点先被处理,只需将从头结点到最左的结点全部压入即可。我们发现栈里的最左结点的下面一个结点正好是它的头结点,将它弹出栈,然后处理右子树的结点就可以了。原创 2022-09-16 16:34:49 · 385 阅读 · 0 评论 -
考研算法(三) 队列
设计你的模拟队列。原创 2022-09-15 16:31:36 · 87 阅读 · 0 评论 -
考研算法(二) 栈
我们将栈初始化为空,然后往栈里插入元素,然后我们同时往最小栈插入一个最小值,即使当前元素不是最小值也要插入,弹出时也最小栈同时弹出。给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;维护一个单调递增的栈,遍历数组,每次将大于等于将要入栈元素的元素弹出,这样就能找到第一个比他小的元素。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。原创 2022-09-15 15:41:51 · 226 阅读 · 0 评论 -
考研算法(一) 线性表
考研相关算法,难度一般原创 2022-09-15 14:39:22 · 1678 阅读 · 0 评论
分享