
数据结构与算法(C++、Python)
Wang_Jiankun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法(C++)-- 算法分析
数据结构与算法(C++)– 算法分析一、原创 2018-08-31 09:23:49 · 883 阅读 · 0 评论 -
数据结构与算法(C++)– 堆排(Heap Sort)
堆排(Heap Sort)1、概念完全二叉树特点: 对于完全二叉树中任一点 i:左孩子的位置为: 2i右孩子的位置为:2i+1父节点位置为:i/2 向下取整最小二叉堆:根节点的值小于子树的任一元素,对于子树也一样。 堆排实现:最小二叉堆,优先队列2、插入元素原理:在末尾插入,根据大小关系进行调整。插入14: 复杂度:插入一个元...原创 2018-09-07 15:33:05 · 507 阅读 · 0 评论 -
C++ 标准库类型 list
C++ 标准库类型 list一、list 的使用与定义1、使用 list 类型list 类型是双向链表,有迭代器插入和删除的速度比较快,查询的速度慢#include <list> 2、定义和初始化 list 对象// 声明一个空的 listlist<int> l; // 声名并初始化,4个元素值都为100list<i...原创 2018-09-13 09:13:26 · 4141 阅读 · 0 评论 -
C++ 标准库类型 stack
C++ 标准库类型 stack一、stack 的使用与定义1、使用 stack 类型stack 类型没有迭代器,不能用迭代器遍历队列#include &amp;lt;stack&amp;gt; 2、定义和初始化 stack 对象// 声明一个空的 stackstack&amp;lt;int&amp;gt; s; // 声名并赋值stack&amp;lt;int&a原创 2018-09-12 10:18:42 · 1098 阅读 · 0 评论 -
C++ 标准库类型 queue
C++ 标准库类型 queue一、queue 的使用与定义1、使用 queue 类型queue 类型没有迭代器,不能用迭代器遍历队列#include &lt;queue&gt; 2、定义和初始化 queue 对象// 声明一个空的 queuequeue&lt;int&gt; q; // 声名并赋值queue&lt;int&gt; q1; f...原创 2018-09-12 10:10:04 · 632 阅读 · 0 评论 -
数据结构与算法(C++)– 贪婪算法(Greedy algorithm)
贪婪算法(Greedy algorithm)1、基础定义:贪婪算法分阶段地工作,在每一阶段,选择在当前最好的决策,不考虑将来的后果。所以一般只能得到局部最优而不是全局最优。贪婪算法:Dijkstra 算法Prim 算法Kruskal 算法哈夫曼编码2、Dijkstra 算法原理: 把起点的 dv 初始化为0,其它的为∞,并设置所有点的最短路径都是...原创 2018-09-06 14:05:22 · 1117 阅读 · 1 评论 -
数据结构与算法(C++)– 图(Graph)
数据结构与算法(C++)– 图(Graph)1、图的基础概念定义:一个图G=(V, E)由顶点(vertex)的集V和边(edge)的集E组成。边(edge):一对点即为一条边(v, w),其中v, w ∈ V有向图(directed):点对是有序的无向图(undirected):点对是无序的邻接(adjacent):w 邻接到 v,当且仅当(v, w )∈ E权(wei...原创 2018-09-06 11:46:12 · 4214 阅读 · 1 评论 -
数据结构与算法(C++)– 二叉查找树(Binary Search Tree )
数据结构与算法(C++)– 二叉查找树(Binary Search Tree )1、二叉查找树原创 2018-09-06 09:25:51 · 451 阅读 · 0 评论 -
数据结构与算法(C++)– 动态规划(Dynamic Programming)
动态规划(Dynamic Programming)理解动态规划的好文:https://www.sohu.com/a/153858619_4669391、基础定义:任何递推公式都可以直接转换为递归算法,但是递归算法经常会有一些重复的计算,导致程序效率低。动态规划就是解决这个问题的方法。动态规划的组成部分:最优子结构:分解问题边界:递归的终止条件状态转移方程:递归的方...原创 2018-09-08 14:58:22 · 721 阅读 · 0 评论 -
数据结构与算法(C++)– 树(Tree)
数据结构与算法(C++)– 树(Tree)1、树的基础知识树(tree): 一些节点的集合,可以为空集子树(sub tree): 树的子集根(root): 树的第一个节点孩子和父亲(Child and parent): 一条边的前一个节点为父亲,后一个节点为孩子叶 (leaf): 没有孩子的节点兄弟(sibling): 具有相同父亲的节点路径和长度(Path an...原创 2018-09-01 11:11:57 · 1186 阅读 · 0 评论 -
数据结构与算法(C++)– 队列(Queue)
数据结构与算法(C++)– 队列(Quene)1、队列原创 2018-09-01 11:05:35 · 976 阅读 · 0 评论 -
数据结构与算法(C++)– 栈(Stack)
数据结构与算法(C++)– 栈1、栈是什么后进先出(Last in, First out)push 入栈,pop 出栈,top栈顶 2、栈的实现单链表:在单链表的前端插入实现 push 操作,删除前端元素实现 pop 操作,前端元素即为 top。 数组:用 vector 的 push_back 和 pop_back 实现 push 和 pop 操作3、栈...原创 2018-08-31 15:24:50 · 638 阅读 · 0 评论 -
数据结构与算法(C++)– 链表(Link)
数据结构与算法(C++)– 链表1、基础知识表:把具有相同类型的序列 A0, A1, A2, … An 称为表 。n 是表的大小,n=0 称为空表。 A0没有前驱,An没有后继。 前驱: Ai 后继 Ai-1 (i &lt; N) ,Ai 是 Ai-1的后继。 后继: Ai−1前驱 Ai (i &gt; 0),Ai-1 是 Ai的前驱。c++ STL 中的 list 用双向...原创 2018-08-31 14:24:53 · 2032 阅读 · 0 评论 -
数据结构与算法(Python)– 回溯法(Backtracking algorithm)
数据结构与算法(Python)– 回溯法(Backtracking algorithm)1、回溯法回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法...原创 2019-03-23 15:52:56 · 4801 阅读 · 0 评论