数据结构与算法学习笔记 (1)--基本概念


数据结构 + 算法 = 程序

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

算法(Algorithm) 是解决特定问题的步骤的描述,是解决问题的思想方法。

程序是计算机语言的具体实现。

一、数据结构

1.相关概念

  • 数据:信息的载体,能被计算机识别、存储和加工处理。
  • 数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。
  • 数据类型:一个值的集合及在值上定义的一组操作的总称。分为:原子类型和结构类型
  • 数据项:数据元素由若干数据项组成,是数据的最小单位。

说明


数据:表
数据元素:一行数据
数据项:表中一个元素
数据类型:表的属性



2.数据结构 DS

数据结构是一个二元组(D,R),表示数据元素集合 和 数据元素之间的关系
R是数据关系,前驱和后继的关系



3.数据关系 分类

逻辑结构:  集合 线性 树形 图形
存储结构:  顺序、链式、索引、散列
数据运算:  增删改查 相关运算


  • 逻辑结构


集合:数据元素无关系
线性:一对一的关系,有一个前驱和后继(除了第一个和最后一个数据元素)
树形:一对多,元素可以有一个前驱,多个后继(父节点 - 子节点)
图形关系:多对多,允许有多个前驱,多个后继。

PS:树是有向且无环的图


  • 存储结构


1.顺序存储结构
特点:数据地址空间的连续性
好处:修改、查询很方便
缺点:固定分配存储空间不方便;删除、插入操作很复杂;

2.链式存储
特点:存储空间块通过指针相连成一个完整的存储空间(空间不连续)
优点:空间可以动态分配;方便插入、删除的操作
缺点:查找数据比较麻烦

3.索引存储
索引:类似电话本,通过电话本查找那个人

4.散列存储
又Hash存储


  • 数据的运算关系
增删改查+排序等



二、算法(Algorithm)

算法是解决特定问题的步骤的描述。


1.算法和程序

算法是解决问题的思想方法

程序是计算机语言的具体实现


2.算法与数据结构

算法设计 取决于选定的逻辑结构;算法实现 : 依赖于采用的存储结构。


瑞士科学家沃思(N.Wirth) 的著名公式:

数据结构 + 算法 = 程序


3.算法特性

(1)有穷性
(2)确定性
(3)可行性
(4)输入
(5)输出



4.算法分析:

解决一个问题可以有多种不同的算法, 在算法正确的前提下, 评价算法好坏的方法 :

• 正确性, 可读性, 健壮性, 时间效率高和储存量低
• 消耗时间的多少 :
• 消耗存储空间的多少 :
• 容易理解、 容易编程和调试、 容易维护


猜你喜欢

转载自blog.csdn.net/feit2417/article/details/80979940