程序=算法+数据结构

电子计算机的主要用途:

早期:
主要用于数值计算后来:
处理逐渐扩大到非数值计算领域,

能处理多种复杂的具有一定结构关系的数据


人机对弈问题是树问题

学生学籍可以用线性表表示

文件系统可以用树存储

教学计划编排问题,可以用图


数据结构的研究内容为:

研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作。

1.数据(data)

一切能输入到计算机中并能被计算机程序识别和处理的符号集合
数值性数据:整数、实数等
非数值性数据:图形、图象、声音、文字等

2.数据元素(dataelement)
数据的基本单位,在计算机程序中通常将其作为一个整体进行考虑和处理,也称结点(node)或记录(record)

3.数据项(dataitem)
是构成数据元素的不可分割的最小单位,也被称为字段、域或属性。

4.数据对象(Data Object)

具有相同性质的数据元素的集合,是数据的一个子集,例如,整数的数据对象是集合N={0, ±1, ±2, …} ,英文字母的数据对象是集合C={‘a’, ‘A’, ‘b’, ‘B’, …}

5.数据结构(Data Structure)

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

通常这些数据元素都不是孤立存在的,而是通过某种关系将所有数据元素联系起来,我们将这种关系称为“结构”。
这种关系是抽象的,即并不涉及数据元素的具体内容。是数据元素及其相互间的关系的数学描述。

数据结构的两个层次

逻辑结构:数据元素间抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。

存储结构(物理结构):数据元素及其关系在计算机存储器中的存储方式。

 数据运算

逻辑结构和存储结构都相同, 但运算不同, 则数据结构不同,例如, 栈与队列。

增删查改加排序


 数据类型

1.数字(Number)数据类型
Python中的数字数据类型用于存储数值,如整型、浮点型和复数型,定义在其上的操作有加、减、乘和除等。
2.字符串(String)数据类型
字符串是Python中最为常用的数据类型之一,通常使用单引号或双引号来创建。定义在其上的操作有字符串连接(“+”)、重复输出字符串(“*”)、通过索引获取字符串中的字符(“[]”)、截取字符串中的一部分(“[:]”)、若包含指定字符则返回True(“in”)、若不包含指定字符则返回True(“notin”)、原始字符串(“r/R”)和格式字符串(“%”)等。

3.列表(List)数据类型
列表是Python中最常用的数据类型之一,通常使用方括号来创建。定义在其上的操作有访问列表中的值、更新列表和删除列表元素等,同时与字符串类似,列表也包括连接、重复和截取等操作。

4.元组(Tuple)数据类型
Python中元组与列表类似,但元组使用小括号创建,并且其中的元素不能修改。定义在元组上的操作有访问元组、修改删除元组,同时元组也包括连接重复截取等操作。

5.集合(Set)数据类型
集合是由一组无序不重复的元素组成的序列,常使用{}或者set()函数来创建。定义在其上的操作有进行成员关系测试和删除重复元素等。

6.字典数据类型
Python中字典形如{key1:value1,key2:value2,…},其中key1和key2部分被称为键(必须是唯一的),value1和value2被称为值。定义在字典上的操作有修改和删除等。

抽象数据类型(ADTs: Abstract Data Types)

更高层次的数据抽象。

由用户定义,以表示应用问题的数据模型

基本的数据类型组成, 并包括一组相关的操作。

异构/多模态数据


算法与算法分析

1.算法的特性

2.算法的评价

(1)正确性:要求算法能够正确地执行,并满足预先设定的功能和性能要求,大致分为以下4个层次。
①程序不含语法错误。
②程序对于几组输入数据,能够得出满足要求的结果。
③程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据,能够得出满足要求的结果。
④程序对于一切合法的输入数据,都能够得出满足要求的结果。

(2)可读性:算法主要是为了给人们阅读和交流的,其次才是在计算机上执行。一个算法的可读性好才便于人们理解,人们才有可能对程序进行调试,并从中找出错误。接下来给出几个在程序编写上提高可读性的方法。
①注释:给程序添加注释,不仅有利于程序设计者自己阅读和查错,也为后续维护人员理解该程序带来方便。
②变量命名:较复杂的程序通常会涉及较多的变量命名,此时应合理设计变量的名字,从而给后续使用该变量带来方便。

(3)健壮性:当输入的数据不合法或运行环境改变时,算法能恰当地做出反应或进行处理,而不是产生莫名其妙的输出结果。
(4)时间复杂度:对一个算法执行效率的度量。
(5)空间复杂度:是指一个算法在执行过程中所占用的存储空间的度量

数据结构-简介和部分算法分析相关推荐

  1. 数据结构简介以及抽象数据类型的实现

    数据结构简介 数据结构(英语:data structure)是计算机中存储.组织数据的方式. 数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问 ...

  2. 《Redis实战》一1.2 Redis数据结构简介

    本节书摘来异步社区<Redis实战>一书中的第1章,第1.2节,作者: [美]Josiah L. Carlson(约西亚 L.卡尔森)译者: 黄健宏 责编: 杨海玲,更多章节内容可以访问云 ...

  3. [大数据文章之其四] 概率数据结构简介

    日常前言 五月六月,又陷入反反复复的项目 Bug 中了.讲道理,分析日志是越来越熟练了,代码水平其实没有很大提高,毕竟改 Bug 嘛,大多只是在原有代码的基础上,添加或者修改一些业务逻辑.虽然改原生代 ...

  4. 数据结构(一)——数据结构简介

    一.数据结构简介 数据结构是相互间存在特定关系的数据的集合,分为逻辑结构和物理结构. 1.逻辑结构\ 集合结构:数据元素之间没有特别的关系,仅同属相同集合. 线性结构:数据元素间是一对一的关系 树形结 ...

  5. Python数据处理库pandas中的DataFrame数据结构简介

    pandas 中有两大 数据结构 Series和 DataFrame. 本文主要介绍DataFrame的用法.DataFrame可以处理 表格数据. Series介绍在 Python数据处理库pand ...

  6. Pandas数据结构简介

    Series Series 类似一维数组,由一组数据及一组相关数据标签组成.使用pandas的Series类即可创建. import pandas as pd s1 = pd.Series(['a', ...

  7. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  8. 数据结构思维 第二章 算法分析

    第二章 算法分析 原文:Chapter 2 Analysis of Algorithms 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们在前面的章节中看到,Java 提供了 ...

  9. Redis底层数据结构简介

    目录 1.Redis存储结构 2.数据结构 2.1.简单动态字符串(SDS) 2.2.1.SDS数据结构 2.2.2.编码 2.2.3.SDS与C字符串对比 2.2.链表(Linkedlist) 2. ...

最新文章

  1. 聚类分析在用户行为中的实例_聚类分析在用户分类中的应用
  2. 201521123011《Java程序设计》第6周学习总结
  3. 关于优酷开放SDK之setOnCurrentPositionUpdateListener
  4. 中国信通院专家当选ITU-T分布式账本焦点组副主席
  5. Cortex-M系列处理器指令集区别详解
  6. php 数组的深度,有没有办法找出PHP数组的“深度”?
  7. flink globalwindow_《从0到1学习Flink》—— 介绍Flink中的Stream Windows
  8. Win7系统下解决VB6.0鼠标滚轮支持
  9. nginx中的timeout超时设置,请求超时、响应等待超时等
  10. 使用VS2015+win7编译WebKit(WebKit-r189384)
  11. vue实现更换背景图片_vue动态设置style属性修改背景图片
  12. python np float_Python astype(np.float)函数使用方法解析
  13. 设计模式五:原型模式
  14. vmware 虚拟机启动失败, Intel VT-x 处于禁用状态
  15. 小程序-手写签名(附代码)
  16. Python 使用Pandas在原有Excel文件中创建子表格
  17. CGSS中国综合社会调查
  18. 开源基金回测网站:让数据告诉你定投财富密码
  19. 小皮助手(电脑玩手机游戏) v1.0.0.1 官方版
  20. java成员变量定义_java变量之成员变量和局部变量以及它们的运行机制

热门文章

  1. 使用Qt打造属于自己的串口调试助手
  2. 筛选法与试除法 判断素数
  3. RabbitMQ消费端消费机制
  4. 考虑不周和指针越界1156: 单数变复数
  5. SSH登录Ubuntu速度缓慢/usr/bin/xauth: timeout in locking authority file /home/book/.Xauthority
  6. 【敬伟ps教程】蒙版和通道的基础知识
  7. Matlab中如何创建空的三维坐标轴
  8. Linux USB On-The-Go(OTG) on OMAP H2 软件架构分析(一)
  9. maxwell 平面变压器仿真(一)
  10. PointAugmenting: Cross-Modal Augmentation for 3D Object Detection论文笔记