数据结构与算法分析
文章平均质量分 65
zakexu
这个作者很懒,什么都没留下…
展开
-
基本概念
程序设计 = 数据结构 + 算法1.数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合(1)逻辑结构:集合结构,线性结构,树形结构,图形结构(2)物理结构:顺序存储结构,链式存储结构(3)逻辑结构是面向问题的,物理结构是面向计算机的2.算法:解决特定问题求解步骤的描述(1)设计算法应该尽量满足时间效率高和存储量低的需求(2)算法的渐近时间复杂度,简称为时间复杂原创 2016-01-30 15:09:44 · 585 阅读 · 0 评论 -
海量数据处理
在处理海量数据时,遇到的主要问题有两个:(1)时间问题:如何在短时间内高效地处理数据,一般是采用巧妙的算法搭配合适的数据结构;(2)空间问题:如何在有限的内存中处理海量数据,一般是采用分而治之的思想,将海量数据划分为小份的数据;(一)分而治之+统计+排序1.分而治之(1)一般是采用hash映射的方法,将海量数据划分为若干小份量的数据;(2)常见做法:hash(X)%N;其中原创 2016-02-26 17:41:34 · 745 阅读 · 2 评论 -
排序算法
(一)冒泡排序算法1.原创 2016-02-06 20:43:21 · 766 阅读 · 0 评论 -
查找算法
1.静态查找表:只做查找操作的查找表2.动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素(一)顺序查找算法1.顺序查找,又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关原创 2016-02-06 15:42:44 · 1493 阅读 · 0 评论 -
算法设计思想
(一)分治算法1.基本思想:将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同;求出子问题的解,就可得到原问题的解2.例子:快速排序算法(二)动态规划算法1.基本思想:(1)与分治法类似,也是将待求解的问题分解为若干个子问题,按顺序求解子问题,前一子问题的解,为后一子问题的求解提供了有用的信息;依次解决各子问题,最后一个子问题就是初始问题的解原创 2016-02-06 21:15:44 · 5145 阅读 · 0 评论 -
图
(一)基本概念1.无向图:(vi,vj)2.有向图:3.无向完全图:在无相图中,如果任意两个顶点之间都存在边,则称为无向完全图4.有向完全图:在有相图中,如果任意两个顶点之间都存在方向互为相反的边,则称为有向完全图5.子图6.网:带权的图称为网7.连通图:任意两个顶点都是连通的无向图称为连通图8.强连通图:任意两个顶点都是连通的有向图称为原创 2016-02-05 16:32:41 · 1346 阅读 · 0 评论 -
字符串
(一)常识1.ASCII编码:8位二进制数表示一个字符2.Unicode编码:16位二进制数表示一个字符3.为了和ASCII码兼容,Unicode的前256个字符与ASCII码完全相同4.字符串的大小比较是通过组成串的字符之间的编码来进行的(二)朴素的模式匹配算法1.算法:对主串的每一个字符作为子串开头,与要匹配的字符串进行匹配;对主串做大循环,每个字符开头做T的长度的小循原创 2016-02-03 13:21:31 · 566 阅读 · 0 评论 -
栈和队列
栈是限定仅在表尾进行插入和删除操作的线性表(一)概念1.允许插入和删除的一端称为栈顶,另一端称为栈底2.栈又称为后进先出的线性表3.栈的插入操作,叫做进栈4.栈的删除操作,叫做出栈(二)顺序存储结构——顺序栈1.下标为0的一端作为栈底2.两栈共享空间:让一个栈的栈底作为数组的始端,即下标为0处,另一个栈的栈底为数组的末端,即下标为数组长度n-1处(三)链式存储结原创 2016-01-31 19:26:52 · 697 阅读 · 0 评论 -
线性表
线性表:零个或者多个具有相同类型的数据元素的有限序列(一)顺序存储结构——顺序表1.实现:C语言的一维数组可以实现线性表的顺序存储结构(1)线性表的下标从1开始,数组的下标从0开始(2)在任意时刻,线性表的长度应该小于等于数组的长度2.常见操作(1)查找:依据数组下标进行查找,时间复杂度为O(1)(2)插入:插入位置之后的元素依次往后移动一个位置,时间复杂度为O(n)原创 2016-01-30 16:58:20 · 526 阅读 · 0 评论 -
树
(一)基本概念1.子树:子树一定是互不相交的2.结点分类3.结点关系4.深度PS:若将树中结点的各子树看成从左到右是有次序的,不能互换的,则称该树为有序树,否则称为无序树(二)存储结构1.双亲表示法:以顺序存储结构来存储树的结点,同时在每个结点中,附设一个指示器指示其双亲结点在数组中的位置2.孩子表示法:把每个结点的孩原创 2016-02-03 21:30:55 · 772 阅读 · 0 评论