【本文谢绝转载】《大纲》
数据结构:
起源:
基本概念
数据结构指数据对象中数据元素之间的关系
逻辑结构
物理结构
数据的运算
算法概念:
概念
算法和数据结构区别
算法特性
算法效率的度量
大O表示法
时间复杂度案例
空间复杂度
时间换空间案例
1)线性表..
分类:
编程语言 时间:
2016-07-23 07:40:02
阅读次数:
588
书中用求解最大子序列和的方式介绍了分治算法(divide-and-conquer) 分治算法是一种相对快速的算法 运行时间为O(logN) 最大子序列和的问题如下: 给出一组整数 A1 A2 … AN 求∑jk=i Ak 若所有整数均为负 则最大子序列和为0 e.g. 输入-2, 11,-4, 13 ...
分类:
编程语言 时间:
2016-07-21 22:00:23
阅读次数:
185
参考书籍《数据结构与算法分析:C语言描述》 ...
分类:
其他好文 时间:
2016-07-14 02:02:50
阅读次数:
181
一:背景
平衡二叉树(又称AVL树)是二叉查找树的一个进化体,由于二叉查找树不是严格的O(logN),所以引入一个具有平衡概念的二叉树,它的查找速度是O(logN)。所以在学习平衡二叉树之前,读者需要了解二叉查找树的实现,具体链接:二叉查找树
那么平衡是什么意思?我们要求对于一棵二叉查找树 ,它的每一个节点的左右子树高度之差不超过1。(对于树的高度的约定:空节点高度是0;叶子节点高度是1。...
分类:
编程语言 时间:
2016-07-13 23:22:38
阅读次数:
210
在存储满二叉树或近似满二叉树时,按节点层次顺序存储是个不错的主意,我们从根节点开始,逐层由左到右扫描各个节点,依次将节点数据存放到指定的数组中,如果偶尔遇到空的子节点,就用特殊符号来表示。
这个树结构已接近满二叉树了,如果使用按层次顺序存储,将会更简单,更节省空间。按照上面的方法,这棵树所对应的存储结构应该是:
['A', 'B', 'E', 'C', 'D', '#', 'F']
其...
分类:
编程语言 时间:
2016-07-13 17:15:03
阅读次数:
233
概述 由于最近在工作中需要用到树形结构来解决一些问题,所以萌生了系统学习“数据结构和算法”的想法,于是乎从最简单的表结构开始。由于数组是最简单的表结构的实现,也是各个编程语言内置的数据类型,所以不做更多的记录。表结构中以下实现打算学习: LinkedList Stack Queue HashTabl ...
分类:
编程语言 时间:
2016-07-12 01:31:29
阅读次数:
218
前几天在看数据结构与算法,里面提到过kmp算法,一个超级经典的字符串匹配算法。虽然网上有一大堆关于kmp算法的介绍文章,但是我看过之后还是“不明觉厉”。所以打算自己写写,大家一起学习吧。 一.关于KMP算法的概念 关于字符串匹配问题,就是在一个大的字符串T中找到一个小的字符串P的位置,并返回P的位置 ...
分类:
编程语言 时间:
2016-07-11 19:02:18
阅读次数:
151
《数据结构与算法分析——C语言描述》 第九章
第九章不像以前那样直接给出代码了。是伪代码。很多具体实现需要自己去想。图的声明和实现想了挺久的。
graph.h
#ifndef _Graph_H
#define _Graph_H
struct EdgeNode;
typedef struct EdgeNode* EdgeNodePtr;
struct GraphReco...
分类:
编程语言 时间:
2016-07-10 18:37:11
阅读次数:
229
开始复习数据结构和算法,好长时间没写c了,顺便复习一下 三元组的表示与实现 运行结果 ...
分类:
编程语言 时间:
2016-07-06 00:16:15
阅读次数:
227
静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表。 1、顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败。再简单点就是,一个一个的比大小,看看是否相等。 例子: 顺序查找更适合于顺序存储 ...
分类:
编程语言 时间:
2016-06-29 19:07:52
阅读次数:
253