数据结构与算法
文章平均质量分 91
专注记录学习数据结构与算法的过程(基于《大话数据结构》这本书)
James-Tom
微信公众号:一粒尘埃的漫旅。
里面有很多想对大家说的话,就像和朋友聊聊天。
写代码,做设计,聊生活,聊工作,聊职场。
我见到的世界是什么样子的?
一个普通人的世界。
搜索关注我吧。
##一粒尘埃的漫旅 ## @一粒尘埃的漫旅
展开
-
重学数据结构之第九章-排序
目录1、概述2、排序算法2.1、冒泡排序2.2、简单选择排序2.3、直接插入排序2.4、希尔排序算法2.5、堆排序2.6、快速排序算法3、算法的各项指标1、概述排序这一章主要是讲解了常用的一些算法,我们在选择用何种排序算法的时候可以根据时间复杂度来判断,文末会给出一个算法的时间及空间复杂度的表,方便决策。2、排序算法2.1、冒泡排序主要是分为三个版本,初级版,改进1,改进2。我们在实际应用时,直接使用改进2即可。初级版: /** * 冒泡排序初级版本 * 相邻比较原创 2020-10-08 18:24:27 · 165 阅读 · 0 评论 -
重学数据结构之第八章-查找
本章主要是各种算法,主要分为有序查找和无序查找。1、有序查找main调用 public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] arr3 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int原创 2020-10-08 05:05:54 · 160 阅读 · 0 评论 -
重学数据结构之第七章-图
1、图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。图是一种较线性表和树更加复杂的数据结构。在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。其中我们要明确的几个地方:线性表中我们把数据元素叫做元素,树中将数据元素叫结点,在图中,数据元素我们称之为顶点(Vertex)线性表中可以没有数据元素,称为空表。树中没有可以没有结点,叫做空树。那么对于图中则不能没有顶原创 2020-10-06 23:49:08 · 488 阅读 · 0 评论 -
重学数据结构之第六章-树
1、树的定义树(Tree)是n(n>=0)个结点的有限集。当n=0时,称为空树。在任意一棵非空树种:(1)、有且仅有一个特定的称为根的结点(Root);(2)、当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。如下图所示:本书中还是少了一些有关红黑树的概念。树有很多概念和定义需要我们去理解记忆。1.1、树结点分类树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的子树称为原创 2020-10-05 22:21:48 · 699 阅读 · 0 评论 -
重学数据结构之第五章-串
1、定义**串(string)**是由零个或多个字符组成的有限序列,又名叫字符串。零个字符的串称为空串。计算机中常用字符是使用ASCII编码,更准确一点,由7位二进制数表示一个字符,总共可以表示128个字符。后来发现一些特殊符号的出现,128个不够用,于是扩展ASCII码由8位二进制数表示一个字符,总共可以表示256个字符,这已经足以满足以英语为主的语言和特殊符合进行输入、存储、输出等操作的字符需要了, 可是,单我们国家就有除汉语以外的其他少数名族文字,换做全世界估计要有成百上千种语言与文字,显然25原创 2020-10-04 19:19:29 · 171 阅读 · 0 评论 -
重学数据结构之第四章-栈与队列
1、栈的定义2、栈的两种存储结构2.1、顺序存储结构2.1.1、进栈2.1.2、出栈2.2、链式存储结构2.1.1、进栈2.1.2、出栈3、栈的应用-斐波那契的递归函数3.1、迭代法3.2、递归法3.3、对比两种实现方法4、队列的定义4、队列的两种存储结构2.1、顺序存储结构2.1.1、出队2.1.2、入队2.2、链式存储结构2.1.1、出队2.1.2、入队5、总结栈和队列它们都是特殊的线性表,只不过对插入和删除操作做了限制。栈(stack)是限定仅在表尾进行插入原创 2020-10-03 22:42:46 · 329 阅读 · 0 评论 -
重学数据结构之第三章-线性表
线性表:零个或多个数据元素的有限序列。几个关键点:首先它是一个序列,元素之间是有顺序的,若存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他每个元素有且只有一个前驱和后继。前驱和后继后续文章中也会提到,就是指的前一个数据元素和后一个数据元素,只是简化了叫法。原创 2020-10-02 21:26:36 · 589 阅读 · 0 评论 -
重学数据结构之第二章-算法
1、算法定义算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。2、算法的启示举个例子,求1+2+3+…+100之和,我们来看两段代码:代码片段1:int sum = 0,n = 100;for(int i = 1 ; i < n ; i ++){ sum += i;}//sum结果5050system.out.println(""+ sum);代码片段2:int sum = 0 , n = 100;sum = ( 1 +原创 2020-10-01 18:59:40 · 213 阅读 · 0 评论 -
重学数据结构之第一章-数据结构绪论
目录1、数据结构的定义是什么?2、数据结构是怎么起源的?3、数据结构中我们必须要掌握哪些概念和术语?3.1、 数据3.2、数据元素3.3、数据项3.4、数据对象4、数据结构到底有那些结构?4.1、逻辑结构4.1.1、集合结构4.1.2、线性结构4.1.3、树形结构4.1.4、图形结构4.2、物理结构4.2.1、顺序存储结构4.2.2、链式存储结构5、抽象数据类型1、数据结构的定义是什么?数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。2、数据结构是怎么起源的?数据结构是一门研究非数值计算原创 2020-10-01 13:19:33 · 124 阅读 · 0 评论