zoukankan      html  css  js  c++  java
  • 数据结构开篇:逻辑结构和物理结构、算法复杂度

    逻辑结构:
    1.集合结构:数据元素只是同属于一个集合
    2.线性结构:一对一关系
    3.树形结构:一对多的关系
    4.图形结构:数据元素是多对多的关系
    物理结构:
    又叫存储结构,是指数据的逻辑结构在计算机中的存储形式
    顺序存储结构:数组结构,连续的存储单元,数据的逻辑关系和物理关系一致
    链式存储结构:任意的存储单元,数据的逻辑关系和物理关系不一致。

    1.算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
    2.算法有5个特性:
    (1)输入:算法有零个或多个输入
    (2)输出:算法至少有一个输出
    (3)有穷性
    (4)确定性:
    (6)可行性
    3.算法设计的要求:
    正确性:错误说明,没有语法错误,合法输入有合法输出
    可读性:便于阅读、理解和交流
    健壮性:不容易崩溃
    时间效率高和存储量低

    算法效率的度量方法:
    效率高即是算法的执行时间短
    事后统计方法:用计时器对每个算法计时
    事前分析估计方法:编写算法前用数学统计方法估计效率
    因素:1.算法策略,方案
    2.编译产生的代码质量
    3.问题的输入规模
    4.机器执行指令的速度
    算法的复杂度:侧重研究算法随着输入规模扩大增长量的一个抽象
    函数的渐进增长:忽略所加常数,最高次项的系数可视为1,应该关注的主项的阶数
    算法的时间复杂度:执行次数T(n)随规模n的变化情况,确定T(n)的数量及
    T(n) = O(f(n)),执行次数和执行时间成正比
    大O记法:T(n)增长最慢的是最优算法
    对到方法:抛弃一些常数系数,抛弃低阶项

    例如:常数阶O(1);
    线性阶:直线增长O(n)
    平方阶:O(n^2)嵌套(n*(n+1)/2
    对数阶:2^x = n,得到x = log(2)n;所以是O(logn)
    立方阶
    指数阶
    O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) << O(n!) < O(n^n)
    最坏情况与平均情况
    我们所提的执行时间是最坏运行时间
    算法的空间复杂度:内存存储大小
    可以用空间换取时间

  • 相关阅读:
    微信WeixinJSBridge API
    微信内置浏览器的JsAPI(WeixinJSBridge续)[转载]
    一套简单可依赖的Javascript库
    一款轻量级移动web开发框架
    传说中的WeixinJSBridge和微信rest接口
    点击网页分享按钮,触发微信分享功能
    Metronic前端模板
    AdminLTE前端模板
    Nginx如何配置静态文件直接访问
    架构设计流程
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/9459064.html
Copyright © 2011-2022 走看看