程序员“修炼成神”的必经之路——数据结构(第1章 概论)

Posted 猿力满满

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员“修炼成神”的必经之路——数据结构(第1章 概论)相关的知识,希望对你有一定的参考价值。

​​​​​目录

前言

一、基本概念和常用术语

1.基本概念

2.数据结构包含的内容

      1)数据的逻辑结构

      2)数据的存储结构(物理结构)

      3)数据的运算

二、算法的描述和分析

1.算法描述

2.算法分析


前言

       著名的瑞士计算机科学家沃思(N.Wirth)教授曾提出:算法+数据结构=程序。可见作为一名程序员要想写出一个“好”的程序、开发出一种结构合理、性能良好的软件,仅仅掌握一门编程语言是不够的,还必须掌握算法与数据结构。换句话说,要想成为大神级程序员,数据结构就是“必修功法”。


一、基本概念和常用术语

1.基本概念

数据(data)是描述客观事物的数、字符以及能输入计算机中并被计算机处理的符号的集合。

数据元素(data element)是数据的基本单位。

数据对象(data object)是具有相同性质的数据元素的集合,是数据的一个子集。

2.数据结构包含的内容

       一般包括以下三个方面的内容:

      1)数据的逻辑结构

       数据的逻辑结构可分为线性结构非线性结构

       线性结构特征:数据元素(结点)之间存在着一对一的关系,且结构中仅有一个开始结点和一个终端结点,其余结点都是仅有一个直接前趋和一个直接后继。

       非线性结构特征:数据元素之间存在着一对多或多对多的关系,即一个结点可能有多个直接前趋和多个直接后继。

      2)数据的存储结构(物理结构)

       数据的存储结构可以用以下四种基本的存储方法实现:

       ① 顺序存储方法

       ② 链接存储方法

       ③ 索引存储方法

       ④ 散列存储方法

      3)数据的运算

       常用的运算有:检索、插入、删除、更新、排序等。其实也就是增删改查这几个操作。

二、算法的描述和分析

1.算法描述

       算法是由若干条指令组成的有穷序列,其中每条指令表示一个或多个操作。通俗地说,一个算法就是一种解题的方法。

算法必须满足的五个准则:

  1. 输入。算法开始前必须给算法中用到的变量初始化,一个算法的输入可以包含零个或多个数据。
  2. 输出。算法至少有一个或多个输出。
  3. 有穷性。算法必须在执行有限步后结束。
  4. 确定性。算法中每一条指令的含义都必须明确,无二义性。
  5. 可行性。算法中描述的操作都可以通过有限次的基本运算来实现。

2.算法分析

    如何来评价算法的优劣呢?应主要考虑如下几点:

(1)执行算法所耗费的时间,即时间复杂性

(2)执行算法所耗费的存储空间,主要是辅助空间,即空间复杂性

(3)算法应易于理解、易于编程,易于调试等,即可读性可操作性


ps:博主创作不易,如果喜欢就点个赞吧!ღ( ´・ᴗ・` )比心

以上是关于程序员“修炼成神”的必经之路——数据结构(第1章 概论)的主要内容,如果未能解决你的问题,请参考以下文章

程序员“修炼成神”的必经之路——数据结构(第2章 线性表)

程序员“修炼成神”的必经之路——数据结构(第4章 多维数组和广义表)

[架构之路-24]:目标系统 - 系统软件 - C语言的结构与程序的工作原理 - 程序控制函数调用栈函数调用性能优化

[架构之路-23]:目标系统 - 系统软件 - C语言的结构与程序的工作原理 - 数据类型与数据定义(待续)

[架构之路-21]:目标系统 - 系统软件 - 计算机系统架构计算机指令系统结构化程序与分层编程。

Python之路第11章:Python面向对象