当前位置: 首页 > news >正文

数据结构 项目一

一:数据结构的基本概念
数据结构----研究数据的特性及数据之间存在的关系
算法+数据结构=程序。其中数据结构是指数据逻辑结构和物理结构,算法是对数据运算的描述。
用计算机解决一个具体问题时,首先从具体问题中抽象出一个适当的数学模型,然后设计一个能解此数学模型的算法,最后编出程序,进行测试,并调整程序直至得到最终答案。
在数据结构中数据之间的关系主要有两种,它们分别是线性关系和非线性关系,其中非线性关系又可以分为树形关系和图关系。
数据的逻辑结构和存储结构是密不可分的两个方面,在实现算法时,首先应解决数据的存储问题。数据之间要考虑存储,又要考虑数据单位之间的关系,在确定了存储结构后,根据存储的结构再来确定相应操作的实现方法。
数据元素也叫结点,它是组成数据的基本单位。一般情况下,一个结点含有若干个字段(数据项),字段是构成数据的最小单位(bit)。
数据对象也称为数据元素类,是指具有相同性质的数据元素的集合。
数据结构 Data-Structure=(D,R)
D是数据元素的有限集合,R是D上的关系。
根据数据元素间关系的不同特性,通常有四类基本结构

  1. 集合结构
  2. 线性结构
  3. 树形结构
  4. 图形结构(网状结构)
    逻辑结构:结点和结点之间的逻辑关系称为数据的逻辑结构。
    存储结构:数据及数据之间的关系在计算机中的存储表示称为数据的存储结构(物理结构)。
    数据的存储结构可用4种基本存储方法得到:
  5. 顺序存储方法
  6. 链接存储方法
  7. 索引存储方法
  8. 散列存储方法
    数据处理是指对数据进行查找、插入、删除、合并、排序、统计及简单计算等操作的过程。
    数据类型是指一个值的集合以及在这些值上定义的一组操作的总称。
    抽象数据类型(Abstract Date Type 简称ADT)是指抽象数据组织和与之相关的操作。每一个操作由它的输入和输出定义。
    抽象数据类型可以定义为:
    ADT=(D,S,P)
    其中D表示数据对象,S是D上的关系集,P是对D的基本操作集。
    格式:
    ADT 抽象数据类型名{
    数据对象:<数据对象的定义>
    数据关系:<数据关系的定义>
    基本操作:<基本操作的定义>
    }
    数据对象和数据关系的定义用伪码来描述,基本操作的定义格式为:
    基本操作名(参数名)
    初始条件:<初始条件描述>
    基本操作:<操作结果描述>
    二:算法和算法分析简介
    算法是执行特定计算的有穷过程,一个完整的算法应该满足以下五条性质:
    (1)正确性 算法必须完成所期望的功能,得到的结果必须是正确的。
    (2)确定性 组成算法的指令必须是清晰的、无二义性。也就是说算法的每一个步骤都必须准确定义。准确定义是指所描述的行为必须是对人或机器而言是可读的、可执行的。每一步必须在有限的时间内执行完毕,同时必须是我们所力所能及的,能够依赖于具体的工具来执行的工序。
    (3)有穷性 算法必须在有限的步骤内结束。如果一个算法由无限的步骤组成,该算法不可能有计算机程序实现。
    (4)有效性 算法的指令必须具有可执行性。
    (5)可终止性 算法必须可以终止,即不能进入死循环。
    一个算法可以没有输入,但是至少应该有一个输出。
    算法用语言结构来介绍就分为:
  9. 常量和变量
  10. 基本数据类型(逻辑类型 字符类型 整数类型 浮点类型)
  11. 常用运算符(算术运算符 位运算符 关系运算符 逻辑运算符)
  12. 条件选择语句 (if if-else switch)
  13. 循环语句 (for while do-while)
  14. 输入、输出语句 (输入:System.in.read() 输出:System.out.println() )
  15. 其他一些语句 (break continue)
  16. 注释形式 (各语言不一样 如python #为单行注释 三引号为多行注释)
    一个好的算法应该考虑以下方面:
    1.正确性 (在合理的数据输入下,能在有限的运行时间内得出正确的结果。)
    2.运行时间 (算法中包含简单操作的次数叫做算法的时间复杂性,它是算法运行时间的一个相对量度)
    3.占用的存储空间 (算法在运行过程中所占用的存储空间)
    4.简单性 (算法的简单性可以使正确性的证明比较容易,并且便于编写、修改、阅读和调试)
    一般度量一个程序的执行时间有两种方法:事后统计方法和事前分析估算的方法(通常使用后者)。
http://www.hskmm.com/?act=detail&tid=8844

相关文章:

  • 好烦
  • 用 Go 语言与 Tesseract OCR 识别英文数字验证码
  • FreeRTOS和LVGL组合使用教程
  • Codeforces 1646 记录
  • 综合与实现流程【p3】--(DSP-存储)优化PS系统集成
  • Linux中 sed命令忽略大小写匹配
  • 【STL库】哈希封装 unordered_map/unordered_set - 教程
  • Pip换源
  • 7zip压缩解压缩-测试CPU性能
  • 高数
  • P5666 [CSP-S2019] 树的重心
  • Java运行机制
  • 除自身以外数组的乘积-leetcode
  • 【2022】SDRZ夏令营游记
  • rapidXML解析xml文件
  • office2024免费永久激活版下载安装教程:含激活步骤 + 一键安装包下载
  • 大学不止GPA
  • 大学目标
  • [论文笔记/评估方法] RELIABLE AND DIVERSE EVALUATION OF LLM MEDICAL KNOWLEDGE MASTERY
  • 本地VMware Workstation Pro的rhel-server-7.9-x86_64服务器配置本地源
  • 2025年十大AI网站构建工具:专家评测与推荐!
  • 扫描线乱谈
  • 详细介绍:量子计算学习(第十四周周报)
  • 视频播放时切出页面视频暂停(亲测可用)
  • VulkanAPI细节梳理1
  • cf773
  • (简记)一类区间覆盖问题 珂朵莉树 ODT
  • 5 事务隔离级别与锁机制
  • 我向编程世界宣布的第一声
  • Win11 安装 MinGW