
数据结构
qq_35191331
这个作者很懒,什么都没留下…
展开
-
拓扑排序(Topological Sorting)
一、什么是拓扑排序在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次。若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说。例如,下面这个图: ...转载 2018-04-05 01:22:35 · 236 阅读 · 0 评论 -
桶排序
桶排序简单入门篇^-^在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同学们的分数按照从高到低排序。小哼的班上只有5个同学,...转载 2018-04-05 01:36:08 · 211 阅读 · 0 评论 -
基数排序
(一)基数排序的思想: 把待排序的整数按位分,分为个位,十位.....从小到大依次将位数进行排序。 实际上分为两个过程:分配和收集。 分配:从个位开始,按位数从小到大把数据排好,分别放进0--9这10个桶中; 收集:依次将0-9桶中的数据放进数组中 重复这两个过程直到最高位(二)过程:比如现在要排序 {400,31,53,72,6,29} 首先按个位的大...转载 2018-04-05 01:54:22 · 248 阅读 · 0 评论 -
插入排序
算法原理:插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法步骤:1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素带最后一个元素当成是未排序序列。2)从头到尾依次扫描未排序系列,将扫描到的每一个元素插入到有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素想等,则将待插入元素插入到相等元素的后...原创 2018-04-05 01:56:36 · 181 阅读 · 0 评论 -
堆排序
在理解堆排序前,先理解下什么是堆?堆:所谓的堆就是一颗完全二叉树的每个节点都不大于子节点。完全二叉树:二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。堆排序的核心思想:(1)先将数据排序成一个堆(2)输出堆顶(3)将最后一个节点(最低层,最右边)放入堆顶(4)调整使之成为一个堆(5)重复 (2)~(4) ...原创 2018-04-05 03:11:03 · 158 阅读 · 0 评论 -
中序表达式转后缀表达式
对于一个算术表达式我们的一般写法是这样的(3 + 4) × 5 - 6这种写法是中序表达式 而后序表达式则是将运算符放在操作数的后面,如3 4 + 5 × 6 -可以看出后序表达式中没有括号, 只表达了计算的顺序, 而这个顺序恰好就是计算器中的一般计算顺序。运用后缀表达式进行计算的具体做法:建立一个栈S 。从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运...转载 2018-04-12 21:40:37 · 517 阅读 · 0 评论