算法与数据结构
Johnson0722
learning like deep learning
展开
-
常用排序和查找算法的原理及python实现
常用排序和查找算法的原理及python实现常用的排序算法:冒泡排序,插入排序,归并排序, 快速排序、基数排序、堆排序,直接选择排序。 常用的查找算法:顺序查找,二分查找,哈希表查找和二叉树查找其中我们应该重点掌握二分查找、归并排序和快速排序,保证能随时正确、完整地写出它们的代码。同时对其他的查找和排序必须能准确说出它们的特点、对其平均时间复杂度、最差时间复杂度、额外空间消耗和稳定性烂...原创 2017-12-13 20:36:57 · 3096 阅读 · 0 评论 -
堆的基本概念及常用操作
堆完全二叉树:若设二叉树的深度为nnn,除第nnn层外,其它各层 (111~n−1n−1n-1) 的结点数都达到最大个数,第nnn层所有的结点都连续集中在最左边,这就是完全二叉树满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为nnn,且结点总数是2n−12n−12^n - 1 ,则它就是满二叉树堆(heap)又被为优先队列...原创 2018-02-17 00:39:57 · 6457 阅读 · 0 评论 -
二叉树的前序,中序,后续,递归及非递归遍历的python实现
在计算机科学里,树的遍历(也称为树的搜索)是图的遍历的一种,指的是按照某种规则,不重复地访问某种树的所有节点的过程。具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。遍历的种类遍历方式的命名,源于其访问节点的顺序。最简单的划分:深度优先,广度优先。 深度优先遍历又可分为,前序遍历(pre-order), 中序遍历(in-order),后序遍...原创 2018-02-21 14:35:48 · 3245 阅读 · 1 评论 -
Dijkstra算法原理及实现
算法原理1. 简介Dijkstra算法是从一个顶点到其余各顶点的最短路径(单源最短路径)算法,解决的是有向图中最短路径问题。算法的主要特点是使用了广度优先搜索策略,以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。2. 原理首先,引入一个辅助向量DDD,它的每个分量 D[i]D[i]D [i...原创 2018-02-24 15:51:43 · 8876 阅读 · 2 评论 -
二叉查找树(BST)的基本概念及常用操作
二叉查找树二叉查找树(Binary Search Tree),也称二叉搜索树、有序二叉树(ordered binary tree),排序二叉树(orted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;任意节点的左、右子树也分别为二...原创 2018-03-20 10:43:36 · 16338 阅读 · 1 评论