• 数据结构-概述


    一、概述

    1、数据结构分类

    逻辑结构

    • 集合结构
    • 线性结构
    • 树形结构
    • 图形结构

    物理结构

    逻辑结构真正在计算机中表达方式

    • 顺序存储结构:数组(数据存储单元内存地址是连续的)
    • 链式存储结构:引入指针存放数据元素的地址

    2、算法

    根据一定的条件,对一些数据进行计算,得出需要的结果。

    优秀的算法追求的目标

    1. 花最少的时间完成需求
    2. 占用最少的内存空间完成需求

    2.1算法分析

    事前分析估算法

    1. 算法采用的策略和方案
    2. 编译产生的代码质量
    3. 问题输入估摸
    4. 机器执行指令的速度

    2.1.1时间复杂度分析

    分析算法的运行时间,最重要的就是把核心操作的次数和输入规模关联起来

    2.1.1.1函数的渐进增长

    随着输入规模(n)的增大,算法的常数操作可以忽略不计。

    随着输入规模(n)的增大,与最高次项相乘的常数可以忽略。

    最高次项的指数大的,随着n的增长,结果也会变得增长特别快。

    算法函数中n最高次幂越小,算法的效率越高。

    总结:

    1. 算法函数中的常数可以忽略。
    2. 算法函数中最高次幂的常数因子可以忽略
    3. 算法函数中最高次幂越小,算法的效率越高
    2.1.1.2算法时间复杂度

    大O记法规则使用

    • 用常数1取代运行时间中的所有加法常数
    • 在修改后的运行次数中,只保留高阶项
    • 如果最高阶项存在,且常数因子不为1,则去除与这个项相乘的常数

    时间复杂度从低到高:O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)

    2.1.1.3函数调用中的时间复杂度分析

    每一段核心代码执行的都要计算,然后通过大O记法进行规整

    2.1.1.4最坏情况

    2.1.2空间复杂度分析

    遵循大O记法,在java后端开发中,默认遵循时间复杂度分析

  • 相关阅读:
    string的不可变性
    <转载>网页设计中的F式布局
    Jmeter使用插件对服务器进行性能监控
    服务端的性能测试
    Linux下性能监视神器dstat用法
    服务器性能带宽实时监控
    Linux下查看系统剩余空间
    监控服务器带宽性能的命令
    监控服务器性能命令
    python3+appium app自动化实现左滑功能
  • 原文地址:https://www.cnblogs.com/sgrslimJ/p/13040082.html
Copyright © 2020-2023  润新知