数据结构与算法
仿生鸟
这个作者很懒,什么都没留下…
展开
-
读完你就会并查集
江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”,只要是能通过朋友关系串联起来的,不管拐了多少个弯,都认为是自己人。这样一来,江湖上就形成了一个一个的帮派,通过两两之间的朋友关系串联起来。而不在同一个帮派的人,无论如何都无法通过...转载 2020-02-11 20:38:33 · 246 阅读 · 0 评论 -
二叉树的创建与遍历(C++)
最近学二叉树懵懵懂懂的,自己看了下例程写了下代码明白了很多。实践才是真理啊...在这里做个总结三种遍历(我这里先详细记录先序遍历的递归,迭代和改进):先序遍历递归实现preordert(x){ if( !S.empty ) { visit(x->data); preordert(x->left); preordert(x->...原创 2018-08-20 11:08:35 · 3354 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度总结
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 ...转载 2018-08-07 19:13:34 · 185 阅读 · 0 评论 -
循环队列(C++)
之前看了下队列的原理,信心满满马上写了个循环队列,与例程一对比才发现我这写的确实很垃圾。我记录下例程对待问题的思想作个对比1.我的代码中出现大量for循环,需要思考能否简化2.出入队列过于冗杂,如下// function with queue/*总结下类中的结构体 要用指针 */#include<iostream>using namespace std;...原创 2018-08-20 14:01:15 · 910 阅读 · 1 评论