数据结构与算法分析
katy_yuan
这个作者很懒,什么都没留下…
展开
-
数据结构三要素
1.数据逻辑结构逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机的。数据的逻辑结构分为线性结构和非线性结构,线性表是典型的线性结构;集合、树和图是典型的非线性结构。数据的逻辑结构分类见下图。- 集合结构中的数据元素之间除了 “同属于一个集合”的关系外,别无其他关系。- 图状结构或网状结构结构中的数据元素之间存在多对多的关系。- 线性结构结构中的数据元原创 2016-08-29 16:49:44 · 9804 阅读 · 0 评论 -
算法的基本概念及特性(有穷性、确定性、可行性、输入和输出)
算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有下列5个重要特性: 1) 有穷性一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。 2) 确定性算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。即对于相同的输入只能得出相同的输出。3) 可行性一个算法是可行的,即原创 2016-08-29 17:06:02 · 25334 阅读 · 0 评论 -
算法效率度量:时间复杂度和空间复杂度
算法效率的度量是通过时间复杂度和空间复杂度来描述的。 .时间复杂度 一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记作T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。算法中的基本运算(最深层循环内的语句)的频度与T(n)同数量级,所以通常釆用算法中基本运算的频度 f(n)来分析算法的时间复杂度。因此,算法的时间复杂度也记为:T(n)=O(f原创 2016-08-29 17:30:55 · 2915 阅读 · 0 评论 -
线性表
线性表的定义线性表是具有相同数据类型的n (n>=0)个数据元素的有限序列。其中n为表长,当n=0 时该线性表是一个空表。若用L命名线性表,则其一般表示如下: L=(a1, a2, …, ai, ai+1, …, an)其中,a1是唯一的“第一个”数据元素,又称为表头元素;an是唯一的“最后一个”数据元素,又称为表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个原创 2016-08-29 18:03:25 · 561 阅读 · 0 评论 -
线性表之顺序表
顺序表,它是用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。第1个元素存储在线性表的起始位置,第i个元素的存储位置后面紧接着存储的是第i+1个元素。因此,顺序表的特点是表中元素的逻辑顺序与其物理顺序相同。假设线性表L存储的起始位置为LOC(A),sizeof(ElemType)是每个数据元素所占用存储空间的大小,则表L所对应的顺序存储如图2-1所原创 2016-08-30 16:02:01 · 1686 阅读 · 0 评论 -
单链表
由于顺序表的插入、删除操作需要移动大量的元素,影响了运行效率,由此引入了线性表的链式存储。链式存储线性表时,不需要使用地址连续的存储单元,即它不要求逻辑上相邻的两个元素在物理位置上也相邻,它是通过“链”建立起数据元素之间的逻辑关系,因此,对线性表的插入、删除不需要移动元素,而只需要修改指针。线性表的链式存储又称为单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立起数据元素之间的线原创 2016-09-01 12:15:52 · 764 阅读 · 0 评论 -
typedef 笔记学习
阐释一直在忙,最近终于有时间回顾以前所写过所学过的一些基础知识,发现受益匪浅,可以说是返璞归真吧!比如今天所说typedef,大部分应该用的很多,但是说出有哪些方面的好处,可以说不一定很全,今天就给自己做个笔记,以免以后忘记!在大多数C或者OC工程中,声明typedef主要是创建一个与其他C类型同名的名字,特别是结构体和指针,基本上可以用于大部分类型!使用typedef主要有以下几点:隐藏实现细节。原创 2016-12-29 18:10:05 · 307 阅读 · 0 评论