数据结构与算法
文章平均质量分 81
XuDTone
这个作者很懒,什么都没留下…
展开
-
数据结构
一、数据结构概述1、数据结构是计算机中对数据的一种存储和组织形式,可以用来表征特定的对象数据,同时也泛指相互之间存在一种或多种特定关系的数据的集合。2、数据结构包括三方面内容:数据的逻辑结构、数据的存储结构、数据的运算。(1)数据的逻辑结构:根据元素之间的逻辑关系。数据的逻辑结构是从逻辑关系上描述数据的,与数据在计算机中如何存储无关的。数据的逻辑结构可以看作是从具体问题抽象出来的数学模原创 2017-11-26 22:40:10 · 364 阅读 · 0 评论 -
查找算法
一、查找算法概述1、查找是指从一批记录中找出满足指定条件的某一记录的过程,查找又称为检索。2、在执行查找操作的时候,往往只是指定一个或几个域的值。这些作为查找条件的域称为关键字,关键字分为两类:(1)主关键字:如果关键字可以唯一标识数据结构中的一个记录,则称次关键字为主关键字。(2)次关键字:如果关键字不能唯一区分各不同记录,则称此关键字为次关键字。3、对于无顺序的数据,只有逐原创 2017-12-10 22:39:13 · 322 阅读 · 0 评论 -
排序算法
一、排序1、任何排序的通用算法均需要Ω(NlogN)次比较。2、被排序的对象属于Comparable类型,因此我们使用CompareTo方法对输入数据施加相容的排序。除(引用)赋值运算外,这是仅有的允许对输入数据进行的操作。在这些条件下的排序叫做基于比较的排序。二、插入排序1、基本思想将n个待排序的元素看成是一个有序表和一个无序表,初始时假定第一个数为有序表,无序表中包含n-1原创 2017-10-03 21:56:18 · 353 阅读 · 0 评论 -
五大算法
贪婪算法(greedy algorithm)1、贪婪算法阶段工作。在每一个阶段,可以认为所做决定是最好的,而不考虑将来的后果。通常这意味着选择的是某个局部的最优。这种“眼下能够拿到就拿”的策略的贪婪算法名称的由来。2、当算法终止时,我们希望局部最优等于全局最优。如果是这样的话,那么算法就是正确的;否则,算法得到的是一个次最优解。如果不要求绝对最佳答案,那么有时使用简单的贪婪算法生成近似的答原创 2017-10-07 11:18:39 · 556 阅读 · 0 评论 -
表、栈、队列
一、抽象数据类型(ADT)1、抽象数据类型是带有一组操作的一些对象的集合。在ADT的定义中没有地方提到关于这组操作是如何实现的任何解释。诸如表、集合、图以及与它们各自的操作一起形成的这些对象都可以被看作是抽象数据类型。对于集合ADT,可以有像添加、删除以及包含这样一些操作,也可以只要两种操作并和查找。2、程序中需要对ADT实施操作的任何其他部分可以通过调用适当的方法来进行。二、表ADT原创 2017-10-10 23:25:08 · 518 阅读 · 0 评论 -
树
一、预备知识1、定义树的一种自然的方式是递归的方式。一棵树是一些节点的集合,这个集合可以是空集,若不是空集,则树由称作根的节点r以及0个或多个非空的(子)树T1,T2,…,Tk组成,这些子树中每一棵的根都被来自根r的一条有向的边所连结。2、一棵树是N个节点和N-1条边的集合,其中一个节点叫做根。每条边都将某个节点连接到它的父亲,而除去根节点外每一个节点都有一个父亲。每一个节点可以有任意多个原创 2017-10-12 23:13:02 · 445 阅读 · 0 评论 -
散列
散列表的实现叫做散列。散列是一种用于以常数平均时间执行插入、删除和查找的技术。那些需要元素间任何排序信息的树操作将不会得到有效的支持。诸如findMin、findMax以及以线性时间将排过序的整个表进行打印的操作都是散列所不支持的。一、一般想法1、理想的散列表数据结构只不过是一个包含一些项的具有固定大小的数组。通过查找是对项的某个部分(即数据域)进行的,这部分就叫做关键字。2、把表的大原创 2017-10-15 22:08:14 · 501 阅读 · 0 评论 -
基本算法思想
一、什么是算法1、算法是用于计算的方法,通过这种方法可以达到预期的计算结果。2、算法是模型分析的一组可行的、确定的和有穷的规则。3、算法的5个特征(1)有穷性:算法的指令和步骤的执行次数是有限的,执行时间也是有限的。(2)确切性:算法的每一个指令或步骤都必须有明确的定义和描述。(3)输入:一个算法应该有相应的输入条件,用来刻画运算对象的初始情况。(4)输出:一个算法应该原创 2017-11-26 22:43:52 · 2808 阅读 · 1 评论