美文网首页
数据结构与算法基础(一)2020_0331

数据结构与算法基础(一)2020_0331

作者: 卡布奇诺_95d2 | 来源:发表于2020-04-01 09:02 被阅读0次

    程序设计 = 数据结构 + 算法。

    数据结构定义:

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

    数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号的集合。例如:整型、实型等数值类型,还包括声音、字符、图像、视频等非数值类型。

    总结:数据就是一种符号,这些符号必备两个前提,1:可以输入到计算机中;2:能够被计算机处理。

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

    数据项:一个数据可以由若干个数据项组成。数据项是数据不可分割的最小单位。

    数据结构可根据不同角度分为逻辑结构和物理结构

    逻辑结构(针对问题),分为以下4种:

    1、集合结构:

    特点:各数据元素“平等”;

    2、线性结构:

    特点:数据元素之间的关系是一对一。

    3、树型结构:

    特点:数据元素之间的关系是一对多;

    4、图形结构:

    特点:数据元素之间的关系是多对多;

    物理结构(针对内存)

    顺序存储

    链式存储

    算法:

    定义:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示为一个或多个操作。

    算法的基本特性:

    1、输入

    2、输出

    3、有穷性

    4、确定性

    5、可行性

    算法的其它特性:

    可读性

    健壮性

    判断算法的优劣可通过算法时间复杂度和算法空间复杂度来衡量。

    算法时间复杂度

    算法时间复杂度的大O表示法:

    1、用常数1取代运行时间中的所有加法常数。3->1 O(1)

    2、在修改后的运行次数函数中,只保留最高阶。n^3+2n^2+5 -> O(n^3)

    3、如果最高阶项存在且不是1,则去除与这个项相乘的常数。2n^3 -> O(n^3)

    时间复杂度术语:

     1. 常数阶

     2. 线性阶

     3. 对数阶

     4. 平方阶

     5. 立方阶

     6. nlog阶

     7. 指数阶(不考虑) O(2^n)或者O(n!) 除非是非常小的n,否则会造成噩梦般的时间消耗. 这是一种不切实际的算法时间复杂度. 一般不考虑!

    常用的算法时间复杂度所耗费时间从小到大的排列依次是:

    算法空间复杂度

    定义:通过计算算法所需的存储空间实现。一般情况下,一个程序在机器上执行时,除了需要存储程序本身的指令、常数、变量、输入数据之外,还需要存储对数据操作的存储单元,即这个就是算法空间复杂度。也采用大O表示法。

    通常,算法时间复杂度指运行时间的需求。空间复杂度指存储空间的需求。

    相关文章

      网友评论

          本文标题:数据结构与算法基础(一)2020_0331

          本文链接:https://www.haomeiwen.com/subject/rvwqoctx.html