大话数据结构从零学习

数据结构

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

我们把数据结构分为物理结构和逻辑结构

逻辑结构

  • 集合结构。集合结构。都是平级的类似数学中的集合
  • 线性结构 1对1
  • 树形结构 1对多
  • 图形结构 多对多

物理结构

物理结构指的逻辑结构在计算机中的存储形式

  • 数据元素的存储形式有2种 1.顺序存储类比栈,数组等 2.链式存储 存储空间不连续的,类比堆

下面是总结

逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目的就是把数据和逻辑关系存储到计算机的内存当中

算法

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

算法的五大特性

  • 零个或者多个输入
  • 至少一个输出
  • 确定性 每一步都是确定的
  • 有穷性 时间不能太长
  • 可行性 每一步都可以通过执行有限次数完成
  • 正确性

    • 算法没有错误
    • 符合条件的数据没有错误和异常
    • 非法输入的数据没有错误
    • 刁钻的数据没有错误
  • 可读性

  • 健壮性

  • 时间效率高 存储量低

判断一个算法效率的时候,函数中的常数和其他次要项常常可以忽略,更应该关注主项(最高阶项)的阶数

时间复杂度的计法 大O计法

  • 常数阶 不管常数是多少,我们都标记为O(1)
  • 线性阶 O(N)
  • 对数阶
    int count=1; while(count<n){ count *= 2;}
    此时2的n次方为count .n = log2count O(logN)
  • 平方阶

没有特殊说明的话,时间复杂度都是指的最坏的情况

    原文作者:沧州宁少
    原文地址: https://www.jianshu.com/p/61ccce7e9dfa
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞