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

数据结构基础学习之绪论

简介

  1. 参考书籍:
    • 数据结构 Java语言描述第二版
    • 大话数据结构
  • 参考资料
    • www.cnblogs.com/skywang1234…
    • www.geeksforgeeks.org/
  • 算法可视化工具
    • www.cs.usfca.edu/~galles/vis…
    • algorithm-visualizer.org
    • visualgo.net/en
  • 学习的内容
  1. 时间复杂度
  2. 线性表的学习
  3. 栈与队列学习
  4. 串与数组
  5. 树与二叉树的学习
  6. 图的学习
  7. 排序
  8. 查找
  • GitHub 仓库 :AlgorithmPractice

一、基本概念和术语

1. 数据(Data)

  • 数据是信息的载体,是对客观事物的符号表示,能够被计算机程序识别,储存、加工和处理
  • 数据还包括图像声音等非数值数据

2. 数据元素(Data Element)

  • 数据元素是数据的基本单位。数据元素也称元素、结点、顶点、记录。

3. 数据项(Data Item)

  • 一个数据元素可以由若干个数据项(也可称为字段、域、属性)组成。
  • 数据项是具有独立含义的最小标识单位。

4. 数据对象(Data Object)

  • 是相同数据元素组成的集合

5. 数据结构(Data Structure)

一、含义:数据结构指的是数据之间的相互关系,即数据的组织形式。

二、数据结构包括内容

  1. 数据逻辑结构(Logical Structure)
  • 定义:
    1. 数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,独立于计算机。
    2. 逻辑结构可以看作是从具体问题抽象出来的数学模型。
    3. 数据的逻辑结构是各个数据元素之间的逻辑关系
  • 分类
    • 线性结构
    • 非线性结构
      1. 集合
      2. 树形结构
      3. 图形结构
  1. 数据的存储结构(Storage Structure)
  • 定义:
    • 数据元素及其关系在计算机存储器内的表示,称为数据的存储结构(Storage Structure);
    • 数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它依赖于计算机语言。
    • 对机器语言而言,存储结构是具体的。一般,只在高级语言的层次上讨论存储结构。
  • 储存方式:
    1. 顺序储存方式
    2. 链式储存方式
    3. 索引储存方式
    4. 散列储存(哈希储存)方式
  1. 数据的操作
  • 定义:
    • 数据操作就是对数据进行某种方法的处理,也称数据运算
    • 数据的运算定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合。
    • 最常用的检索、插入、删除、更新、排序等运算实际上只是在抽象的数据上所施加的一系列抽象的操作。

二、算法与算法分析

1. 算法:

  • 定义: 对特殊问题进行求解步骤的一种描述
  • 性质:
    1. 有穷性
    2. 有限性
    3. 有效性
    4. 输入
    5. 输出
  • 目标:
    1. 正确性
    2. 可读性
    3. 健壮性
    4. 高效性(时间和空间)
  • 时间复杂度分析
    1. 算法执行时间: 指令序列(i)的执行次数和 * 指令序列(i)执行时间
  • 空间复杂度分析
    1. 表示:S(n) = O(f(n))
    2. 固定空间需求(Fix space requiremnet): 程序代码、常量、变量所占空间,与处理问题规模无关
    3. 可变空间需求(Variable space requirement): 输入数据元素和程序运行所占的空间,与处理问题规模相关

相关文章:

  • 常用CSS的布局问题;
  • Android技术栈(四)Android Jetpack MVVM 完全实践
  • Jetson TX2 arm板子刷机,安装Caffe
  • 滴滴金融2019新招数:大“桔”为重?
  • 好程序员web前端教程分享js模板模式
  • MySQL判断字段是否为null
  • 数据结构--第四章串、数组和广义表总结
  • 九九乘法-杨辉三角-质数
  • RDS管理控制台如何手机备份MySQL数据库?
  • Jmeter分布式测试的各种坑之jmeter-server修改ip
  • JavaScript作用域相关的总结
  • 为什么SaaS软件集成是未来的必然趋势?
  • 华奥延保对代码的理解(华奥延保)
  • 《代码敲不队》第一次作业:团队亮相
  • HashMap 与 HashSet 联系
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Git的一些常用操作
  • HTTP那些事
  • javascript 总结(常用工具类的封装)
  • java中具有继承关系的类及其对象初始化顺序
  • Joomla 2.x, 3.x useful code cheatsheet
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mysql中InnoDB引擎中页的概念
  • text-decoration与color属性
  • Vue学习第二天
  • 浮现式设计
  • 回顾2016
  • 理解在java “”i=i++;”所发生的事情
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 写代码的正确姿势
  • 用Canvas画一棵二叉树
  • NLPIR智能语义技术让大数据挖掘更简单
  • 积累各种好的链接
  • 说说我为什么看好Spring Cloud Alibaba
  • 我们雇佣了一只大猴子...
  • #if和#ifdef区别
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (vue)页面文件上传获取:action地址
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计ssm电影分享网站
  • (四) Graphivz 颜色选择
  • (四)linux文件内容查看
  • (转)setTimeout 和 setInterval 的区别
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ..回顾17,展望18
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Micro Framework初体验
  • .NET 设计一套高性能的弱事件机制
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [2]十道算法题【Java实现】