数据结构与算法

1 算法

算法:是指解题方案的准确而完整的描述。

算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。

算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括:

(1)可行性;

(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;

(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;

(4)拥有足够的情报。

算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。

指令系统:一个计算机系统能执行的所有指令的集合。

基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。

算法的控制结构:顺序结构、选择结构、循环结构。

算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。

算法复杂度:算法时间复杂度和算法空间复杂度。

算法时间复杂度是指执行算法所需要的计算工作量。

算法空间复杂度是指执行这个算法所需要的内存空间。

2 数据结构的基本基本概念

数据结构研究的三个方面:

(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;

(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;

(3)对各种数据结构进行的运算。

数据结构是指相互有关联的数据元素的集合。

数据的逻辑结构包含:

(1)表示数据元素的信息;

(2)表示各数据元素之间的前后件关系。

数据的存储结构有顺序、链接、索引等。

线性结构条件:

(1)有且只有一个根结点;

(2)每一个结点多有一个前件,也多有一个后件。

非线性结构:不满足线性结构条件的数据结构。

3 线性表及其顺序存储结构

线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。

在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。

非空线性表的结构特征:

(1)且只有一个根结点a1,它无前件;

(2)有且只有一个终端结点an,它无后件;

(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。

线性表的顺序存储结构具有以下两个基本特点:

(1)线性表中所有元素的所占的存储空间是连续的;

(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。

ai的存储地址为:adr(ai)=adr(a1)+(i-1)k,,adr(a1)为个元素的地址,k代表每个元素占的字节数。

顺序表的运算:插入、删除。

4 栈和队列

栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。

栈按照“先进后出”(filo)或“后进先出”(lifo)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。

栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。

队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。rear指针指向队尾,front指针指向队头。

队列是“先进行出”(fifo)或“后进后出”(lilo)的线性表。

队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。

循环队列:s=0表示队列空,s=1且front=rear表示队列满

5 线性链表

数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。

结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。

链式存储方式即可用于表示线性结构,也可用于表示非线性结构。

线性链表,head称为头指针,head=null(或0)称为空表,如果是两指针:左指针(llink)指向前件结点,右指针(rlink)指向后件结点。

线性链表的基本运算:查找、插入、删除。

6 树与二叉树

树是一种简单的非线性结构,所有元素之间具有明显的层次特性。

在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。

在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中的度称为树的度。树的层次称为树的深度。

二叉树的特点:(1)非空二叉树只有一个根结点;(2)每一个结点多有两棵子树,且分别称为该结点的左子树与右子树。

二叉树的基本性质:

(1)在二叉树的第k层上,多有2k-1(k≥1)个结点;

(2)深度为m的二叉树多有2m-1个结点;

(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;

(4)具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分;

(5)具有n个结点的完全二叉树的深度为[log2n]+1;

(6)设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下结论:

①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为int(k/2);

②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);

③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。

满二叉树是指除后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。

完全二叉树是指除后一层外,每一层上的结点数均达到值,在后一层上只缺少右边的若干结点。

二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。

二叉树的遍历:

(1)前序遍历(dlr),首先访问根结点,然后遍历左子树,后遍历右子树;

(2)中序遍历(ldr),首先遍历左子树,然后访问根结点,后遍历右子树;

(3)后序遍历(lrd)首先遍历左子树,然后访问遍历右子树,后访问根结点。

7 查找技术

顺序查找的使用情况:

(1)线性表为无序表;

(2)表采用链式存储结构。

二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,坏情况只需比较log2n次。

8 排序技术

排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。

交换类排序法:(1)冒泡排序法,需要比较的次数为n(n-1)/2; (2)快速排序法。

插入类排序法:(1)简单插入排序法,坏情况需要n(n-1)/2次比较;(2)希尔排序法,坏情况需要o(n1.5)次比较。

选择类排序法:(1)简单选择排序法,

坏情况需要n(n-1)/2次比较;(2)堆排序法,坏情况需要o(nlog2n)次比较。

计算机二级公共基础知识2020版电子版,2020年计算机二级考试公共基础知识背诵笔记...相关推荐

  1. 计算机信息技术基础 第2版,第2章 计算机信息技术基础.ppt

    第2章 计算机信息技术基础.ppt (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 第2章 计算机信息技术基础 1.数据与信息 3 ...

  2. 计算机组成与设计第五版英文_南京大学计算机考研信息汇总

    原文转载于 南京大学​www.noobdream.com 南京大学计算机系官网 南京大学软件学院官网 南京大学(Nanjing University),简称"南大",是中华人民共和 ...

  3. 河北工程技术学院计算机应用技术,2020年春河北工程技术学院期末考试计算机应用基础试题及答案(13页)-原创力文档...

    计算机应用基础 一.单选,共 50 题/ 每题 2.0 分/共 100.0 分: ? 1 .计算机具有逻辑判能力,主要取决于( ) ? ? A .硬件 . 题 答 ? B .体积 得 不 内线 ? C ...

  4. 计算机组织与结构徐苏版电子书百度云,计算机组织与结构(计算机科学与技术21世纪高等学校规划教材)...

    导语 内容提要 徐苏主编的这本<计算机组织与结构>根据我国教育部教学指导委员会制定的"高等学校计算机科学与技术专业规范"组织编写,与美国ACM和IEEE CS计算机课程 ...

  5. 计算机应用基础 第2版 在线作业 1答案,天津大学《计算机应用基础》在线作业一二【标准答案】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 <计算机应用基础>在线作业一 试卷总分:100 得分:100 一.单选题 (共 20 道试题,共 100 分) 1.微型计算机的微处理器是指( ...

  6. 计算机算法基础_考情分析|2020年华南理工大学计算机考研考情分析

    这段时间会给大家各大院校20考研数据,2020华南理工大学计算机考研的初试数据如下: 计算机科学与工程学院 初试:一.408计算机学科专业基础综合 科目:数据结构.计算机组成原理.操作系统.计算机网络 ...

  7. 计算机信息技术基础 第2版,计算机与信息技术基础(第2版)

    计算机与信息技术基础(第2版) 语音 编辑 锁定 讨论 上传视频 <计算机文化基础教学基本要求>及<全国计算机等级考试一级Windows考试大纲>的要求编写的.本书介绍计算机基 ...

  8. 计算机图形学孔令德基础知识,欢迎访问 孔令德计算机图形学精品资源共享课课程网站...

    孔令德 博士,教授.山西省教学名师.山西省模范教师.太原市尖草坪区第三.四届政协委员.山西省计算机学会常务理事. 一.教学成果: (1)主持山西省精品资源共享课"C++程序设计"和 ...

  9. 具体数学:计算机科学基础:第2版

    <具体数学:计算机科学基础:第2版> 基本信息 原书名:Concrete mathematics:A foundation for computer science,second edit ...

最新文章

  1. 《中国人工智能学会通讯》——5.31 制造服务的产生与聚合
  2. 洛谷P2038 无线网络发射器选址
  3. 超图桌面版新建一个简单三维数据集并发布
  4. SpringAop @AfterThrowing通知中获取异常信息并且在控制台打印
  5. ES6新特性之函数优化-箭头函数
  6. cjson 对象是json数组型结构体_C语言 - cJSON解析特定格式 含有数组array类型的数据...
  7. 复杂性思维第二版 四、无标度网络
  8. TensorFlow安装中碰到的问题汇总
  9. argparse模块用法
  10. Python定时爬取微博热搜+pyecharts动态图展示
  11. Win10 安装 XPS查看器
  12. 如何彻底卸载3dmax2020_完全卸载3DMAX的方法
  13. vscode、windows快捷键
  14. 利用计算机来对指纹,指纹自动识别系统.doc
  15. 如何调节桌面亮度计算机,电脑屏幕亮度怎么调,教您调节电脑亮度方法
  16. 2022届浙江工业大学考研计算机技术专硕上岸经验 初试复试经验
  17. 【https】利用keytool进行证书配置
  18. 武汉理工大学计算机学院在哪个区,武汉理工大学研究生院在哪个校区
  19. 一些比较实用的书籍推荐
  20. 四个月的写作之路No.22

热门文章

  1. java 析构函数_C++与Java的区别(一)
  2. 迷宫搜索问题最短路_【算法常用模板】总结(更新中)
  3. Linux 文件基本属性以及操作技巧
  4. 小程序 webview 分享_新的一周,分享15个好玩的小程序
  5. Bert在CV领域的应用
  6. Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】
  7. 美团大脑:知识图谱的建模方法及其应用
  8. 胡伟 | 面向多实体人机协作消解的对比表生成自动化方法
  9. 【ACL2020】Relabel the Noise: Joint Extraction of Entities and Relations via Cooperative Multiagents
  10. 人工智能领域开展标准化研究