算法和数据结构
文章平均质量分 92
Yaser0
一书未完,断不看他书。东翻西阅,都是徇外为人。
展开
-
图论(初级)
图论基础(初级)图论基础初级引言图的定义及分类图的实现方式无权图邻接矩阵邻接表小结图的基本操作算法DFS算法及其应用定义求连通分量路径搜索无权图BFS算法及其应用定义最短路径无权图小结总结引言 图论(Graph theory)是数学研究领域的一大分支,它以图为研究对象,而图是一种由顶点和边构成的离散数据结构,它的...原创 2018-02-14 20:32:03 · 774 阅读 · 0 评论 -
图论(中级)
图论基础(中级)图论基础中级引言带权图的定义及实现定义实现最小生成树问题定义最小生成树算法Prim算法切分定理Prim算法实现思路Prim的简单实现Prim算法优化Kruskal算法Kruskal算法实现思路Kruskal算法实现小结单源最短路径问题定义单源最短路径算法Dijkstra算法Dijkstra算法实现思路Dijks...原创 2018-02-14 20:32:34 · 263 阅读 · 0 评论 -
堆(最大值,最大索引堆)
堆堆引言最大堆定义实现核心代码讲解衍生优化最大索引堆索引堆定义索引堆实现总结引言 堆是计算机科学中一类特殊的数据结构,它虽然也被叫做优先队列,但它并不是队列,它并不是按照先进先出的原则进行存储数据的,它更像是一棵二叉树。最大堆定义 最大堆的实现是通过构造二叉堆,而二叉堆的实质是一棵完全二叉树,它具备以下性质...原创 2018-02-14 20:33:12 · 1347 阅读 · 0 评论 -
排序算法
排序算法排序算法引言冒泡排序冒泡排序流程选择排序选择排序流程插入排序插入排序流程归并排序归并排序流程快速排序基础版快速排序流程快速排序优化版快速排序再优化总结引言 排序算法有好几种,从最简单的选择,冒泡,插入排序,到比较复杂的归并,堆排序和快速排序,再到计数排序,基数排序和桶排序等。要列举的话足有上百种,但这里只...原创 2018-02-08 13:07:16 · 203 阅读 · 0 评论 -
二叉搜索树
二叉搜索树二叉搜索树引言二分查找二叉搜索树定义二叉搜索树节点插入二叉搜索树节点查找二叉搜索树遍历前序遍历中序遍历和后序遍历层次遍历二叉搜索树节点删除删除最小值删除最大值删除任意节点总结引言 二叉搜索树(BST),也称二叉查找树,它是一种链式存储结构,是基于二分查找这一算法思想衍生而来的。二分查找 因为二叉搜索树是...原创 2018-02-08 13:13:16 · 360 阅读 · 0 评论 -
并查集
并查集并查集引言并查集的存储结构及实现并查集简易版find实现isConnected实现union实现小结并查集find实现isConnected实现union实现小结并查集基于size的优化union优化的实现并查集基于rank的优化union优化的实现并查集优化之路径压缩思路find优化的实现总结引言...原创 2018-02-08 13:19:35 · 3802 阅读 · 0 评论 -
树状数组
树状数组树状数组引言树状数组思想树状数组操作求和操作更新操作引言树状数组是一种十分有用的数据结构,同时它也是一种极其优美的数据结构,其代码简洁精炼。它经常可以作为线段树的简化版而使用,对于像区间求和这类问题,树状数组是游刃有余,但这并不代表可以完全取代线段树,因为有些问题必须借助线段树来完成,其实换句话说就是树状数组可以做的线段树一定可以,反之则不行。...原创 2018-03-03 19:06:51 · 241 阅读 · 0 评论