数据结构01--概要

引言

      先来回顾一下计算机科学的定义:计算机科学是一门研究用计算机进行信息表示和处理的科学,它涉及到两个问题:信息表示信息处理。

信息的表示和组织直接关系处理信息的程序的效率,因此分析待处理问题中的对象特征及各对象间关系,这就是数据结构。

   

数据结构


    数据结构是计算机存储、组织数据的方式。主要包括逻辑结构存储结构数据运算;如上图所示。

1、逻辑结构

    数据的逻辑结构是指从逻辑关系上描述数据,与数据的存储无关,且独立于语言。逻辑结构可分为线性结构非线性结构

(1)线性结构

    线性结构就是指有且仅有一个开始节点和一个终端节点,并且所有节点最多只有一个直接前驱和一个直接后继。

常用的线性结构包括线性表和栈

扫描二维码关注公众号,回复: 1800589 查看本文章


(2)非线性结构

    非线性结构是指一个节点可能有多个直接前驱和直接后继。常见的非线性结构包括树和图。


2、存储结构

    数据的存储结构是指数据元素及其关系在计算机存储时如何表示。

逻辑结构和存储结构之间的区别:逻辑结构是指从逻辑关系上描述数据,与在计算机内存中的存储位置没有关系;而存储结构是根据数据元素在计算机存储时的存储位置关系确定的。逻辑结构表示数据的逻辑关系,存储结构表示数据的存储关系。


3、数据运算

    数据运算通常定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合,但运算的具体实现要在存储结构上进行。


4、算法

    算法是为求解一个问题需要遵循的、被清晰地指定的简单指令的集合。算法通常以某一个数据集合作为输入,执行完一组特定的指令后返回一个唯一的数据集合作为输出。


5、算法分析

    同一个问题可用不同算法解决,一个算法的效率会影响程序的效率,算法分析的目的在于选择合适的算法,一个算法的评价是从复杂度来考虑的。复杂度是衡量一个算法好坏的重要手段,分为时间复杂度和空间复杂度。

(1)时间复杂度

   算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。用执行时间的长短可以衡量一个算法的优劣。

如果问题规模是n,则时间复杂度是关于n的函数,记做T(n) = O(f(n)),这就是时间复杂度的概念。

算法是一个包括:控制结构指令操作指令,即算法是循环、跳转、判断指令和数据的操作指令的集合;

   公式:     算法的执行时间 = 算法的循环次数 x 操作执行的时间

由此可看出算法的执行时间和算法的循环次数成正比,如:一个for循环(i=0;i<n;i++),那么这个算法的时间复杂度就是O(n),因为它循环了n次。

(2)空间复杂度

    空间复杂度以一个算法在执行过程中所要占用的存储空间多少来衡量一个算法的优劣。它也是问题规模n的一个函数,表示为S(n) = O(f(n)).它的概念和时间复杂度类似,都不以算法的绝对执行时间和绝对实用空间来计算。空间复杂度是额外消耗的存储空间,并不包含算法加载占用的存储空间。复杂度越高,算法执行效率越低,算法也就越差。



猜你喜欢

转载自blog.csdn.net/qq_15708851/article/details/71908269