走进数据结构和算法(C++)
如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构(个体的关系)保存到主存储器(内存)中,以及如何在此基础上为实现某个功能而执行的相应操作。让我们一起走进数据结构和算法的世界!
不放弃的蜗牛
这个作者很懒,什么都没留下…
展开
-
走进数据结构和算法(c++版)(20)——排序(3)
排序(3) 这一章中我们将主要介绍下快速排序,并对这几章的排序算法进行总结。1.快速排序 快速排序( Quick Sort) 的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。#include<iostream>#include<vect...原创 2018-06-30 22:20:10 · 564 阅读 · 0 评论 -
走进数据结构和算法(c++版)(19)——排序(2)
排序(2) 这一章中我们继续来介绍排序算法。1.希尔排序 先来看下希尔排序代码如下:#include<iostream>#include<vector>using namespace std;void SellSort(vector<int>& vec);//希尔排序原创 2018-06-29 20:46:04 · 424 阅读 · 0 评论 -
走进数据结构和算法(c++版)(18)——排序(1)
排序(1) 排序是我们经常需要面对的问题。我们先来看下排序的定义: 假设含有nnn 个记录的序列为{r1,r2,...,rn}{r1,r2,...,rn}\left \{ r_1, r_2,... ,r_n \right \},其相应的关键字分别为{k1,k2,...,kn}{k1,k2,...,kn}\left \{ k_1, k_2,... ,k_n \right \},需确定1...原创 2018-06-28 17:11:36 · 483 阅读 · 0 评论 -
走进数据结构和算法(c++版)(17)——散列表查找(哈希表)
散列表查找(哈希表)原创 2018-06-27 13:23:38 · 1689 阅读 · 1 评论 -
走进数据结构和算法(c++版)(16)——平衡二叉树( AVL 树)
平衡二叉树( AVL 树) 在上面一章中我们介绍了二叉排序树,它是一种既方便查找也有利于插入和删除的方法。但是当输入的排好序数据组时,二叉排序树为斜树,不利于查找效率的稳定性差。现在我们介绍一种高度平衡的二叉排序树——平衡二叉树( AVL 树)。 平衡二叉树,是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。 将二叉树上结点的左子树深度减去右子树深度的值称为...原创 2018-06-26 20:26:23 · 652 阅读 · 0 评论 -
走进数据结构和算法(c++版)(15)——二叉排序树
二叉排序树原创 2018-06-21 22:29:45 · 569 阅读 · 0 评论 -
走进数据结构和算法(c++版)(14)——查找
查找 在生活中,我们经常需要进行查找操作,例如从一本字典中查找一个单词,从图书馆的书架上找到我们需要的书。在数据结构中我们把由同一类型的数据元素(或记录)构成的集合叫做查找表( Search Table)。关键字(Key) 是数据元素中某个数据项的值,又称为键值。查找( Searchìng )就是根据给定的某个值, 在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 查找表按照...原创 2018-06-20 22:09:32 · 883 阅读 · 0 评论 -
走进数据结构和算法(c++版)(13)——关键路径
关键路径原创 2018-06-18 19:43:50 · 1273 阅读 · 0 评论 -
走进数据结构和算法(c++版)(12)——拓扑排序
拓扑排序原创 2018-06-15 21:09:31 · 500 阅读 · 0 评论 -
走进数据结构和算法(c++版)(11)——最短路径
最短路径原创 2018-06-15 16:29:07 · 1621 阅读 · 0 评论 -
走进数据结构和算法(c++版)(10)——最小生成树
最小生成树 在生活中我们可能会遇到诸如多个地点架设通信网络、水管等等问题,如何设计出最小的成本的方案? 图1图1图1 上图是一个带权值的图,即网结构。所谓的最小成本,就是nnn 个顶点,用n−1n−1n-1条边把一个连通图连接起来,并且使得权值的和最小。像这样把构造连通网的最小代价生成树称为最小生成树( Minimun Cost Spanning Tree)。...原创 2018-06-13 21:14:11 · 1521 阅读 · 0 评论 -
走进数据结构和算法(c++版)(9)——图
图 前面我们已经介绍了一对一和一对多的数据结构,现在我们就来了解一下多对多的数据结构。 图( Graph )是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G (V, E ),其中, G 表示一个图, V 是图G 中顶点的集合, E 是图G 中边的集合。术语总结 图的术语很多: 图按照有无方向分为无向图和有向图。无向图由顶点和边构成,有向图由顶点和弧...原创 2018-06-12 21:42:39 · 3521 阅读 · 0 评论 -
走进数据结构和算法(c++版)(8)——二叉树
二叉树 二叉树是一种应用十分广泛的树结构。我们先来看下二叉树的定义。 二叉树( Binary Tree) 是$$个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。 二叉树特点每个结点最多有两棵子树。左子树和右子树是有顺序的,次序不能任意颠倒。即使树中某结点...原创 2018-06-07 14:11:24 · 771 阅读 · 0 评论 -
走进数据结构和算法(c++版)(7)——树
树 前面我们介绍的数据结构都是一对一,但是我们经常需要面对一对多的问题。下面我们就来介绍下一对多的数据结构——树。 树( Tree )是n(n⩾0)n(n⩾0)n(n\geqslant 0)个结点的有限集。n=0n=0 n=0 时称为空树。 在任意一棵非空树中: ( 1 )有且仅有一个特定的称为根 ( Root )的结点; (2) 当n>1n>1 n>1 时,其余结点可分...原创 2018-06-05 20:56:50 · 1011 阅读 · 0 评论 -
走进数据结构和算法(c++版)(6)——串
串 我们经常需要存储和处理字符信息,因此就有了“串”这个数据结构。 串( string )是由零个或多个字符组成的有限序列,又名叫字符串。 串一般记为s=“a1a2......an”s=“a1a2......an”s=“a_1a_2......a_n”s 是串的名称。串中的字符数目 n 称 为串的长度,当n为0是称为空串。空格串 只包含空格的串,空格串不是空串,它可以包...原创 2018-06-04 16:45:01 · 803 阅读 · 0 评论 -
走进数据结构和算法(c++版)(5)——队列
队列原创 2018-06-02 17:42:27 · 962 阅读 · 0 评论 -
走进数据结构和算法(c++版)(4)——栈
栈 栈的应用十分的普遍,比如我们按浏览器的后退键,就会逆序加载我们浏览过的网页;一些应用软件中的撤销操作也是应用了栈的方式。 栈( stack )是限定仅在表尾进行插入和删除操作的线性表。 结合上图,我们对栈及其的操作进一步解释。允许插入和删除的一端称为栈顶 ( top),另一端称为栈底 ( bottom) ,不含任何数据元素的栈称为空栈。栈是后进先出 ( Last In...原创 2018-05-31 16:18:23 · 880 阅读 · 1 评论 -
走进数据结构和算法(c++版)(3)——线性表的链式存储结构
线性表的链式存储结构 我们知道线性表的顺序存储结构在插入和删除操作时需要移动大量的数据,他们的时间复杂度为O(n)O(n)O(n)。当我们需要经常插入和删除数据时,顺序存储结构就不适用了,这时我们就需要用到线性表的链式存储结构。 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用...原创 2018-05-29 15:19:27 · 1184 阅读 · 0 评论 -
走进数据结构和算法(c++版)(2)——线性表的顺序存储结构
线性表的顺序存储结构 想要通过计算机帮助我们解决各种问题,首先我们就要把现实中的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能。当我们可以通过一条“线”把这些连续或是离散的数据元素“串”起来储存,就是线性结构。我们看下线性表的定义: 线性表 ( List ):零个或多个数据元素的有限序列。 要注意的它是一个序列,数据元素之间是有顺序...原创 2018-05-24 15:37:46 · 1741 阅读 · 1 评论 -
走进数据结构和算法(c++版)(1)——算法时间复杂度
算法时间复杂度 要判断算法的好坏,可以从时间方面进行分析。算法运行的越快,所用的时间越短则算法越好。但是同一个算法在不同的平台上的运行时间不同。那么又该如何进行评判呢?我们采用时间复杂度进行衡量。 算法时间复杂度定义 在进行算法分析时, 语句总的执行次数T(n)T(n) T ( n )是关于问题规模nn n的函数,进而分析T(n)T(n) T ( n )随nn n的变化情况...原创 2018-05-23 21:50:14 · 1933 阅读 · 0 评论