学习共享,集思广益。
v 数据结构学习分享:
l 第一章 绪论
用计算机求解任何问题都离不开程序设计,程序设计的实质是数据表示(数据要能被计算机处理,首先必须能够存储在计算机的内存中,这项任务称为数据表示,其核心是数据结构)和数据处理(一个实际问题的求解必须满足各项处理要求,这项任务称为数据处理,其核心是算法)。数据结构课程主要讨论数据表示和数据处理的基本方法。
v 1.1 数据结构在程序设计中的作用
(1)程序设计的一般过程:
1、分析问题,抽象出具体的数据模型(待处理的数据以及数据之间的关系,即数据结构),形成问题求解的基本思路。
2、数据表示和数据处理(具体的操作步骤,将问题求解的基本思路形成算法)。
3、用程序语言编写程序(将算法的操作步骤转换为程序设计语言)。
附:图灵奖获得者沃思的公式:数据结构+算法=程序。
1.2 本书讨论的主要内容
(1)计算机能够求解的问题
1、数值问题 (数值问题抽象出来的数据模型通常是数学方程);
2、非数值问题 (非数值问题抽象出的数据模型通常是线性表,树,图等数据结构)。
(2)非数值问题的数据组织和处理
1、数据的逻辑结构:线性表,树,图等数据结构,其核心是如何组织待处理的数据以及数据之间的关系。
2、数据的存储结构:如何将线性表,树,图等数据结构存储到计算机的存储器中,其核心是如何有效的存储数据以及数据之间的逻辑关系。
1) 3、算法:如何基于数据的某种存储结构实现插入,删除,查找等基本操作,其核心是如何有效的处理数据。
4、常用数据处理技术:包括查找技术,排序技术,索引技术等。
1.3 数据结构的基本概念
1.3.1 数据结构
(1)数据是信息的载体;数据分为数值型数据(整数和实数等)和非数值型数据(文字、声音、图形、图像)。
(2)数据元素是数据的基本单位。
(3)数据项:构成数据元素的不可分割的最小单位。
(4)数据结构是指相互之间存在一定关系的数据元素的集合。
(5)数据的逻辑结构是指数据元素之间逻辑关系的整体。
(6)数据结构的类型:
①集合:数据元素之间就是“属于一个集合”,除此之外,没有任何关系。
②线性结构:数据元素之间存在着一对一的线性关系。
③树结构:数据元素之间存在着一对多的层次关系。
④图结构:数据元素之间存在着多对多的任意关系。
树结构和图结构也称为非线性结构。
(7)数据的逻辑结构常用逻辑关系图来描述,其描述方法是:将每一个数据元素看做一个结点,用圆圈表示,元素之间的逻辑关系用结点之间的连线表示,如果强调关系的方向性,则用带箭头的连线表示关系。数据的存储结构又称物理结构,是数据及其逻辑结构在计算机中的表示。
(8)数据的存储结构:
1、顺序存储结构的基本思想是:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。
2、连接存储结构的基本思想是:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。
(9)数据的逻辑结构是从具体问题抽象出来的数据模型,是面向问题的,反映了数据元素之间的关联方式和邻接关系。数据的存储结构是面向计算机的,其基本目标是将数据及其逻辑关系存储到计算机的内存中。
1.3.2 抽象数据类型
(1)数据类型是一组值的集合以及定义于这个值集上的一组操作的总称。
(2)抽象:抽出问题的本质特征而忽略非本质的细节,是对具体事物的一个概括。
(3)抽象数据类型是一个数据结构以及定义在该结构上的一组操作的总称。
1.4 算法及算法分析
(1)算法是对特定问题求解步骤的一种描述,是指令的有限序列。
(2)算法必须满足的五个重要特性:
输入:一个算法有零个或多个输入,这些输入通常取自于某个特定的对象集合;输出:一个算法有一个或多个输出,通常输出与输入之间有着某种特定的关系;有穷性:一个算法必须总是(对任何合法的输入)在执行有穷步之后结束,且每一步都在有穷时间内完成;确定性:算法中的每一条指令都必须有确切的含义,不存在二义性。并且,在任何条件下,对于相同的输入只能得到相同的输出;可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。
(3)“好”算法的特性“:正确性,鲁棒性(也称健壮性),简单性,抽象分级,高效性。
(4)算法的描述方法
①自然语言 ②流程图 ③程序设计语言 ④伪代码
1.4.2 算法分析
(1 )度量算法效率的方法
①事后统计:先将算法实现,然后输入适当的数据运行,测算其时间和空间开销;其 缺点如下:编写程序实现算法将花费较多的时间和精力;所得实验结果依赖于计算机的软硬件等环境因素,有时容易掩盖算法本身的优劣。
②事前分析:渐进复杂度,它是对算法所消耗资源的一种估算方法。
(2)算法的时间复杂度
1、问题规模:是指输入量的多少,一般来说,它可以从问题描述中得到。
2、基本语句:执行次数与整个算法的执行次数成正比的语句。它是对算法运行时间的贡献最大,是算法中最重要的操作。
(3)最好、最坏和平均情况
需要时间和假设是等概率分布。
(4)算法的空间复杂度
在算法的值行过程中,需要的辅助空间数量。
(5)算法分析举例
算法的复杂度包括时间和空间,注重的是时间性能。分析算法的时间复杂度的基本方法:找出执行语句次数最多的语句为基本语句。
注:米勒原则、欧几米算法、沃思、
学习难点:1、抽象数据类型的理解和运用
2、伪代码的理解和使用
3、逻辑结构和存出结构,二者之间的关系。
2014、09、17
理工学院计科一班祖培顺供稿
学习共享,集思广益。相关推荐
- 云开发版高效学习微信小程序源码包含复习资料学习共享护眼精灵等功能
☑️ 编号:X0016 ☑️ 品牌:暂无 ☑️ 语言:微信小程序 ☑️ 数据库:无需数据库 ☑️ 类型:微信小程序 ☑️ 规格:小程序 ※ 欢迎关注私信(发消息不限制),领取福利 ※ ☑️ 源码介绍: ...
- Linux无锁共享内存,优秀数据结构学习 - 共享内存无锁队列的实现(二)
优秀数据结构学习 - 共享内存无锁队列的实现(二) 优秀数据结构学习 - 共享内存无锁队列的实现(二) 1 关键技术 操作系统提供的进程间通信机制有文件.socket.消息队列.管道.共享内存等.其中 ...
- 学习共享--产品思维
产品经理这个群体现在已经慢慢被大家所认知,作为产品的缔造者,他的思维方式在某种程度上决定着产品的功能甚至未来的产品走向,那么到底什么是真正的产品思维,产品思维又为什么重要,产品思维和创新之间是什么样的 ...
- 多智能体强化学习:鼓励共享多智能体强化学习中的多样性
题目:Celebrating Diversity in Shared Multi-Agent Reinforcement Learning 出处:Neural Information Processi ...
- 黄浴:基于深度学习的超分辨率图像技术发展轨迹一览
作者 | 黄浴 转载自知乎 导读:近年来,使用深度学习技术的图像超分辨率(SR)取得了显著进步.本文中,奇点汽车自动驾驶首席科学家黄浴对基于深度学习技术的图像超分辨率技术进行了一次全面的总结,分析了这 ...
- 《强化学习周刊》第28期:UNCC提出全新脑-机交互学习模式:内在互动强化学习...
No.28 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...
- Multi-task Learning(Review)多任务学习概述
https://www.toutiao.com/a6707402838705701383/ 背景:只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息,通过进行一定程度的共享不同任务之间 ...
- java 内存映射文件进程间通讯_[转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile...
进程间的通信方式有很多种, 上次我们说了最傻瓜的"共享外存/文件"的方法. 那么, 在本文中, 我们即将学习"共享内存"的方式实现进程间的通信, 这是IPC最快 ...
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)...
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...
最新文章
- 检查多边形是否包含了某点(经纬度)
- 数据结构-判断一棵树是否为二叉排序树
- 设计模式基于C#的工程化实现及扩展
- linux报网络设备繁忙,【分享】linux常用命令
- accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
- [转载]Qt之鼠标样式_vortex_新浪博客
- selenium安装
- 旺旺的计算机无法打开,电脑任务栏中点击阿里旺旺图标无法打开界面的解决方法...
- 万字总结Linux内核过滤框架(Nftables)
- 外派linux运维,请好好善待你身边的Linux运维工程师,因为他们...
- 印光大师、净空法师:法师、居士示现神通需注意哪些事项?
- Bcrypt密码生成及解密工具
- PythonStock(33)特别的巧,发现一个使用 vue 开发的股票系统应用,具备了一些基础的功能,可以拿过来直接跑起来。使用dockerfile进行构建,并跑起来
- matlab双纵坐标的绘图命令_MATLAB画双纵坐标
- 成都生物研究所高性能计算服务器,专家人才库数据----中科院成都生物所资源库...
- 在线考试防作弊js代码
- REXROTH力士乐减压阀DRE6X-10/175MG24-8NZ4M
- 亿信华辰:一文详解医疗机构数据治理六大核心环节|推荐收藏
- java实现录音功能
- 有趣的物联网项目合集
热门文章
- 云客Drupal源码分析之字段API(上)
- 《分布式机器学习》-刘铁岩:全书汇总
- Excel单元格边框斜线的使用
- RootCause深度分析:为什么DCache常会导致LCD显示异常(数据一致性问题)
- 如何给视频添加配音?掌握这些配音方法就够了
- 可调直流恒流源工作时温度过高解决方法
- 猎豹浏览器使用评测(1)-一款颜色很特别的浏览器
- 河北建筑工程学院计算机科学与技术,河北建筑工程学院计算机科学与技术专业2017年在山东理科高考录取最低分数线...
- Kubernetes技术极速入门(一)---- 初次见面,请多多关照
- Matlab textread函数详解