程序设计:为计算机处理问题编制一组指令集

算法:处理问题的策略

数据结构:问题的数学模型

例如:数值计算的程序设计问题

结构静力分析计算--线性代数方程组

非数值计算的程序设计问题

例:求一组(n个)整数中的最大值

算法:基本操作是“比较两个数的大小”

模型:

例:计算机对弈

算法:对弈的规则和策略

模型:

例:足协的数据库管理

算法:需要管理的项目 如何管理 用户界面

模型:

概括的说:

数据结构描述现实世界尸体的数学模型(非数值计算)及其上的操作在计算机中的表示和实现

1.2数据与数据结构

一、数据与数据结构

数据:所有能被输入到计算机中,且被计算机处理的符号的集合计算机操作的对象的总称

是计算机处理的信息的某种特定的符号表示形式

数据元素:数据中的一个“个体”,数据结构中讨论的基本单位

数据结构:带结构的数据元素的集合(非孤立的,存在关系的)

数据的逻辑结构可归为以下四类:

线性结构,树形结构,图状结构,集合结构

数据结构的形式定义为:

数据结构是一个二元组

Data_Structures=(D,S)                   (逻辑结构)

其中:D是数据元素的有限集,S是D上关系的有限集。

数据的存储结构-----逻辑结构在存储器中的映像

数据元素的映像方法:

顺序映像 以存储位置的相邻表示后继关系

链式映像 以附加信息(ptr)表示后继关系

二 数据类型

在用高级程序语言编写的程序中,必须对程序中出现的每个变量,常量或表达式,明确的说明它们所属的数据类型。

数据类型是一个值的集合和定义在此集合上的一组操作的总称。

三 抽象数据类型

是指一个数学模型以及定义在此数学模型上的一组操作

两个重要特征:数据抽象  强调本质的特征,其所能完成的功能以及它和外部用户的接口

数据封装    将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节

描述方法(D,S,P)D数据对象 S是D上的关系 P基本操作集、

1.3 算法和算法的衡量

一.算法

算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性

1.有穷性        有穷步骤 有限时间

2.确定性        对每种情况下所对应的操作都有确切的规定

3.可行性        所有操作都必须足够基本

4.有输入

5.有输出

二.算法设计的原则

1.正确性  a.程序中不含语法错误

b.程序对于几组输入数据能够得出满足要求的结果

c.对精心选择的典型的苛刻的有刁难性的几组输入数据能够得到满足要求的结果

d.程序对于一切合法的输入数据都得到能满足要求的结果

2.可读性 易于理解主要为了人的阅读与交流

3.健壮性 输入非法时 应有相应的处理

4.高效率与低存储量的需求

效率指的是算法的执行时间

存储量指的时算法执行过程中所需的最大存储空间

三.算法效率的衡量方法和准则

通常有两种衡量算法效率的方法

事后统计法,事前分析法(主要)

和算法执行时间相关的因素:

1.算法选用的策略

2.问题的规模

3.编写的程序语言

4.编译程序产生的机器代码的质量

5.计算机执行指令的速度

算法执行时间的增长率和f(n)的增长率相同,则可记作:

T(n)=O(f(n))  称为T(n)为算法的时间复杂度

算法=控制结构+原操作(固有数据类型的操作)

算法的执行时间=原操作的执行次数×原操作的执行时间

基本操作的重复次数为计算执行时间准则

语句的执行次数为语句的频度

四.算法的存储空间需求

算法的空间复杂度

S(n ) =O(g(n))

表示随着问题规模n的增大,算法运行所需存储量的增长率与g(n)的增长率相同

算法的存储量包括:

1.输入数据所占空间

2.程序本身所占空间

3.辅助变量所占空间(若输入数据所占空间只取决于与问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间)

1.1 数据结构的讨论范畴相关推荐

  1. 数据结构及其讨论范畴

    1.数据的种类 数值数据:数(整数与实数) 非数值数据:字符 字符串 文字 图形 图象 声音等 2.数值问题与非数值问题 数值问题: 例 已知:游泳池的长len和宽wide,求面积area ① 建模型 ...

  2. 超清晰-数据结构之队列

    前言:毕业后忙于工作,较少花时间在基础上,突然想起某位大佬的名言,当你不知道该学什么的时候,就去看看基础,是的,技术的范畴确实太大了,我们很容易就会迷茫,不管是哪门语言的开发者,不管你学的是什么武功, ...

  3. 数据结构c语言版第四章题库,数据结构(C语言版)(第4版)习题

    数据结构(C语言版)(第4版)习题 习题 11.1 选择题.(1)计算机识别.存储和加工处理的对象统称为 .A.数据 B.数据元素 C.数据结构 D.数据类型(2)数据结构通常是研究数据的 及它们之间 ...

  4. 围棋博弈程序的实现与思考(4)——棋盘的数据结构

    UCT算法算是介绍完了,以后主要讲实践. 由于在面向对象的编程语言中,本人只会C++和Objective-C(以后也许会写一些iOS开发相关的博文),出于性能的考虑,选择C++是必然的.记得当初开题答 ...

  5. 数据结构13:无序表抽象数据类型(链表)(一)

    目录 一.什么是无序表 二.无序表的操作 三.采用链表实现无序表 四.链表实现 1.节点Node 2.无序表unorderedlist 一.什么是无序表 在前面基本数据结构的讨论中,采用python ...

  6. 数据结构与算法(Python版)十五:无序表抽象数据类型及Python实现

    列表List:什么是列表? 在前面基本数据结构的讨论中, 我们采用Python List来实现了多种线性数据结构 列表List是一种简单强大的数据集结构,提供了丰富的操作接口 但并不是所有的编程语言都 ...

  7. 团队分工及团队贡献分的讨论

    一 . 角色划分: PM : 顾育豪 Dev : 刘强.王洛书.陈睿翊.黄明源 Test :张梦达 二 . 关于评分,团队成员的各抒己见 刘强: 我思考的评分原则是: 1.不单纯根据代码量衡量组员分数 ...

  8. 数据结构视频教程 -《(东南大学 王茜)数据结构 (64讲)》

    整个视频打包下载地址:史上最全的数据结构视频教程系列分享之<(东南大学 王茜)数据结构 (64讲)>,转载请保留出处和链接! 更多优秀资源请访问:我是码农 数据结构对于从事计算机系统软件和 ...

  9. (东南大学 王茜)数据结构 (64讲)

    数据结构对于从事计算机系统软件和应用软件设计与开发人员非常重要.程序设计语言为数据结构的描述提供了很好的手段,数据结构为程序设计语言类型系统的发展与完善奠定了基础.数据结构课程的主要目的是介绍一些常用 ...

最新文章

  1. 九零后的五年七次工作经历
  2. Linux磁盘管理之磁盘结构、概念、原理01
  3. 简明批处理教程(2)
  4. java基础9(IO流)-File类
  5. memcached 安装与简单实用使用
  6. mybatis #与$区别
  7. 题目263-精 挑 细 选
  8. Atitit 教育学体系 教育学主要内容多语言,教学论,心理学,体育 高等教育学 职业技术教育学 教育史
  9. JAVA面试个人简历模板 ——(2022年最新版)
  10. Kindle、epub 、azw3修改行间距
  11. Oracle 常用查询语句
  12. 目前最火的Java主流技术栈及开发工具
  13. python合并文件夹_python实现将两个文件夹合并至另一个文件夹(制作数据集)
  14. hr面试性格测试30题_辉瑞面试过程辉瑞性格测试题
  15. opencv——批量处理图片并保存
  16. 2021.11.08 - 143.猜数字游戏
  17. i5 11400和锐龙r5 5600X哪个强
  18. 这或许是全网最全 Python dataframe 数据合并方法汇总
  19. CVE-2022-1388——F5 BIG-IP iControl REST 身份认证绕过漏洞
  20. 计算机和电脑键盘进水怎么办,小编教你笔记本键盘进水了怎么办

热门文章

  1. java 代码生成器
  2. html5在线考试倒计时,html5 canvas 实现倒计时 功能
  3. 使用华为手机!不知道这5个实用黑科技,几千块钱就白花了
  4. 【精简java】仅占用50MB的Minecraft便携java运行环境(jdk17)
  5. 怎么提取照片中的文字?
  6. java读写word框架_[原创]java读写word文档,完美解决方案
  7. pyecharts 显示海南岛地图
  8. win10启动nginx极简
  9. 2006年中国企业软件收入100强
  10. 失去国产手机的支持,富士康业绩大幅下滑