【数据结构与算法】之(数据结构绪论篇)(一)溢彩色

简介: 【数据结构与算法】之(数据结构绪论篇)(一)溢彩色

内容源于《大话数据结构溢彩版》共九篇;主要是做笔记,;以下第一篇。

If you give a program, you will frustrate them for a day, if you teach them how to program,you will frustrate them for a lifetime.(你交给某人一个程序,你将折磨他一整天,如果你教某人如何编写程序,你将折磨一辈子)。

@[toc]

1.数据结构概论(Abstract Data Type)

什么是数据结构

用计算机去解决一个问题时,大概需要3个步骤:

  1. 首先,从具体问题中抽象出一个数据模型
  2. 其次,设计一个解决此设计模型的算法
  3. 最后,编写出程序

那么数据结构在学什么?

  1. 如何用程序代码把现实世界的问题信息化
  2. 如何用计算机高效地处理这些信息从而创造价值

总而言之:《数据结构》是介于数学、计算机硬件和计算机软件三者之间的一门核心课程


1-1.抽象数据类型:

一个数学模型及定义在该模型上的一组操作;抽象数据类型体现了程序设计中问题分解,抽象和信息隐藏的特性。

抽象:抽象是指取出事物具有的普遍性的本质;只告诉你“是什么”,没说“怎么实现”。


1-2.基本概念和术语

数据

数据,是描述客观事务的符号,是计算机中可以操作的对象,是能被计算机识别到并输入给计算机处理的符号集合。

数据元素

数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

在人类中,人就是数据元素;畜禽类?牛,马,羊,狗,猫就是畜禽类的数据元素。

数据项

数据项:一个数据元素可以由若干个数据项组成。

比如人这样的数据元素,可以由眼睛,耳朵,嘴巴,手脚等这些数据项,也可以有姓名,年龄,联系号码,邮政编码等数据项

数据项是不可分割的最小单位。

数据对象

数据对象:是性质相同的数据元素的集合,是数据的子集

什么是性质相同呢?还是刚才的例子,人都有姓名,生日,性别等相同的数据项。

数据结构

不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称之为结构。


1-3.数据结构概述

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

定义:我们如何把现实中大量而复杂的问题以==特定的====数据类型==和==特定的存储结构==保存到主存储(内存)中,以及在次基础上为实现某个功能(比如查找某个元素,删除某个元素,堆所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法

数据结构 = 个体 + 个体的关系

算法 = 对存储数据的操作


1-4.逻辑结构与物理结构

1-4.1逻辑结构

逻辑结构:是指数据对象中数据数据元素之间的相互关系**

  1. 集合结构:集合结构中的元素除了同属于一个集合外,他们之间没有其它关系。
  2. 线性结构:线性结构中的数据元素之间是一对一的关系
  3. 树形结构:树形结构中的数据元素是一种一对多的关系
  4. 图形结构:图形结构的元素是多对多的关系
物理结构

物理结构:是指数据的逻辑结构在计算机中的存储形式数据元素的储存结构分为两种:

  1. 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理管理是一致的。
  2. 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。


等待更新,未完待续.....


目录
相关文章
|
14天前
|
机器学习/深度学习 算法 存储
[数据结构]——算法的时间复杂度和空间复杂度
[数据结构]——算法的时间复杂度和空间复杂度
|
21天前
|
存储 监控 NoSQL
Redis处理大量数据主要依赖于其内存存储结构、高效的数据结构和算法,以及一系列的优化策略
【5月更文挑战第15天】Redis处理大量数据依赖内存存储、高效数据结构和优化策略。选择合适的数据结构、利用批量操作减少网络开销、控制批量大小、使用Redis Cluster进行分布式存储、优化内存使用及监控调优是关键。通过这些方法,Redis能有效处理大量数据并保持高性能。
39 0
|
7天前
|
算法
重拾数据结构和算法——脑图
重拾数据结构和算法——脑图
13 0
|
12天前
|
算法 搜索推荐 Java
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
7 0
|
13天前
|
存储 搜索推荐 算法
C语言数据结构算法,常用10种排序实战
插入排序(Insertion Sort) 希尔排序(Shell Sort) 选择排序(Selection Sort) 冒泡排序(Bubble Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 基数排序(Radix Sort)
11 1
C语言数据结构算法,常用10种排序实战
|
13天前
|
存储 算法 块存储
数据结构——(一)绪论
数据结构——(一)绪论
|
19天前
|
缓存 算法 Java
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
|
21天前
|
机器学习/深度学习 算法 数据可视化
Python 数据结构和算法实用指南(四)(4)
Python 数据结构和算法实用指南(四)
30 1
|
21天前
|
机器学习/深度学习 存储 算法
Python 数据结构和算法实用指南(四)(3)
Python 数据结构和算法实用指南(四)
18 1
|
21天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(四)(2)
Python 数据结构和算法实用指南(四)
13 0