数据结构
漂流在深圳
这个作者很懒,什么都没留下…
展开
-
《大话数据结构》笔记之 第二章 算法
一、算法定义算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。二、算法的特性1、输入输出:算法具有零个或多个输入;至少有一个或多个输出。2、有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。3、确定性:算法的每一步骤都具有确定的含义,不会出现二义性。4、可行性:算法的每一原创 2013-05-16 16:16:26 · 802 阅读 · 0 评论 -
折半查找、插值查找和斐波那契查找
一、折半查找原创 2014-04-07 21:32:13 · 8358 阅读 · 7 评论 -
顺序表查找
一、介绍1、查找算法an'z原创 2014-04-07 18:16:01 · 1273 阅读 · 0 评论 -
排序算法(四)希尔排序
一、希尔排序1、原创 2014-05-09 00:27:57 · 649 阅读 · 0 评论 -
排序算法(三)直接插入排序
一、直接插入排序算法1、原创 2014-05-07 23:36:16 · 761 阅读 · 0 评论 -
排序算法(一)简介与冒泡排序
一、排序算法简介1、原创 2014-05-05 22:31:22 · 661 阅读 · 0 评论 -
排序算法(二)简单选择排序
一、1、冒泡排序的基本思想就是不断地交换,通过j原创 2014-05-05 23:21:00 · 888 阅读 · 0 评论 -
最小生成树之克鲁斯卡尔算法
一、克鲁斯卡尔算法1、无论是普里姆算法(Prim)还是克鲁斯卡尔算法(Kruskal),考虑问题的出发点都是:为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能的小。但是普里姆算法是以某顶点为起点,逐步找各个顶点上最小权值的边来构建最小生成树的。换一种思考方式,从边出发,因为权值是在边上,直接去找最小权值的边来构建生成树的想法就是克鲁斯卡尔算法的精髓。2、如下图所示,采用原创 2014-03-09 21:37:35 · 1572 阅读 · 0 评论 -
最小生成树之普里姆算法
一、最小生成树1、如下图所示,假如V0~V1表示9个不同的村庄,现在要在这9个村庄中搭建通信网络,其中的权值表示村庄与村庄之间的可通达的直线距离,没有连线的表示不予考虑,距离越大成本就越高,要求用最小的成本完成该任务。那么该在这9个村庄中怎么布局呢。 这是一个带权值的图,即网图,所谓的最小成本就是n个顶点,用n-1条边把一个连通图连接起来,且使得权值的和最小,所以在该图中只要连接原创 2014-03-09 16:31:42 · 1879 阅读 · 0 评论 -
马踏棋盘算法(骑士周游问题)
一、马踏棋盘算法1、国际象棋的棋盘为8*8的方格棋盘,将“马”放在任意指定的方格中,按照“马”走棋的规则将“马”进行移动。要求每个方格只能进入一次,最终使得“马”走遍棋盘64个方格。2、关于国际象棋“马”的走法:以“日”字为单位往斜对角上的那个方格走。如下图所示马在当前位置就有8种走法,如果不考虑边缘的特殊情况,那么需要8^64的时间复杂度才可以把整个棋盘的一个正确路径找出来。原创 2014-03-03 21:38:04 · 7854 阅读 · 0 评论 -
图的遍历之深度优先遍历与广度优先遍历
一、深度优先遍历原创 2014-03-01 14:20:44 · 2310 阅读 · 2 评论 -
《大话数据结构》笔记之 第七章 图
一、图的定义1、图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合。2、线性表中把数据元素叫元素,树中将数据元素叫结点,在图中数据元素则称之为顶点。3、线性表中可以没有数据元素,称为空表;树中可以没有结点,叫做空树;在图结构中,不允许没有顶点,在定义中,若V是顶点的集合,则强调了顶点集合V有穷非空。(注意原创 2013-05-27 17:34:53 · 1501 阅读 · 0 评论 -
《大话数据结构》笔记之 第六章 树
一、树的定义1、树是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中: (1)有且仅有一个特定的称为根的结点; (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......、Tm,其中每一个集合本身又是一棵树,并且称为根的子树,如下图。结点B、D、G、H、I组成的树和结点C、E、F、J组成的树就是结点A的子树;结点D、G、H、I组原创 2013-05-23 18:03:47 · 1461 阅读 · 2 评论 -
《大话数据结构》笔记之 第四章 栈与队列
一、栈的定义1、栈是限定仅在表尾进行插入和删除操作的线性表。把允许插入和删除的一端称为栈顶,另一端称为栈底。不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表,简称LIFO结构。2、栈的插入操作叫做进栈,也称压栈、入栈;栈的删除操作叫做出栈,也有的叫做弹栈。二、进栈出栈变化形式1、栈对线性表的插入和删除的位置进行了限制,并没有对元素进出的时间进行限制。即在不是所有元素都进栈的情原创 2013-05-19 00:41:05 · 986 阅读 · 0 评论 -
《大话数据结构》笔记之 第五章 串
一、串的定义1、串的定义:串(string)是由零个或多个字符组成的有限序列,又名叫字符串。一般记为s="a1a2.......an"(n>=0),其中s是串的名称,用双引号(有些书中是用单引号)括起来的字符序列是串的值,注意引号不属于串的内容。ai(12、空格串:是只包含空格的串,注意与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。3、子串与主串:串中任意个数的连续字符组原创 2013-05-20 21:18:42 · 824 阅读 · 0 评论 -
《大话数据结构》笔记之 第三章 线性表
一、线性表的定义1、线性表:零个或多个具有相同类型的数据元素的有限序列。元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继;且线性表强调是有限的。2、线性表数学定义:若将线性表记为(a1,...,ai-1,ai,ai+1,...,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai原创 2013-05-16 22:15:30 · 1486 阅读 · 3 评论 -
《大话数据结构》笔记之 第一章 数据结构绪论
一、基本概念和术语1、数据:是描述客观事务的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。2、数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。3、数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分隔的最小单位。4、数据对象:是性质相同的数据元素的集合,是数据的子集。性质相同是指数据元素具有相同数量原创 2013-05-16 11:58:04 · 934 阅读 · 0 评论 -
二叉排序树(二叉查找树)
一、序1、如果查找的数据集是普通的顺序存储,则插入操作k原创 2014-04-12 23:01:07 · 3104 阅读 · 0 评论