zoukankan      html  css  js  c++  java
  • 数据结构与算法第一篇

    什么是数据结构和算法?
    数据结构,就是一组数据的存储结构。
    算法,就是操作数据的一组方法。

    衡量的标准(metric)---时间复杂度空间复杂度

    时间复杂度的全称是渐进时间复杂度,表示算法的执行时间与数据规模之间的增长关系

    空间复杂度全称就是渐进空间复杂度(asymptotic space complexity),表示算法的存储空间与数据规模之间的增长关系。

    常用的复杂度级别?
    多项式阶:随着数据规模的增长,算法的执行时间和空间占用,按照多项式的比例增长。包括,
    O(1)(常数阶)、O(logn)(对数阶)、O(n)(线性阶)、O(nlogn)(线性对数阶)、O(n^2)(平方阶)、O(n^3)(立方阶)

    大O表示法来源

    算法的执行时间与每行代码的执行次数成正比,用T(n) = O(f(n))表示,其中T(n) 表示算法执行总时间,f(n)表示每行代码执行总次数,而n往往表示数据的规模。

    复杂度分析的4个概念

    • 最坏情况时间复杂度:代码在最理想情况下执行的时间复杂度。
    • 最好情况时间复杂度:代码在最坏情况下执行的时间复杂度。
    • 平均时间复杂度:用代码在所有情况下执行的次数的加权平均值表示。
    • 均摊时间复杂度:在代码执行的所有复杂度情况中绝大部分是低级别的复杂度,个别情况是高级别复杂度且发生具有时序关系时,可以将个别高级别复杂度均摊到低级别复杂度上。基本上均摊结果就等于低级别复杂度。 

    重点学习20个最常用的最基础的数据结构和算法
    10个数据结构: 数组,链表,栈,队列,散列表,二叉树,堆,跳表,图,Trie树
    10个算法: 递归,排序,二分查找,搜索,哈希算法,贪心算法,分治算法,回溯算法,动态规划,字符串匹配算法

  • 相关阅读:
    深入理解Node.js垃圾回收与内存管理
    【File System】Node.js中文件操作模块File System
    【事件流】事件冒泡和事件捕获
    undefined 和null的区别?
    localStorage实现登录注册功能
    解刨for循环
    react中嵌入高德地图并Marker标点
    react页面中嵌入地图,标识出某个地点,使用插件react-amap
    react中使用antd的List组件,以及下载文件,List隔行变色
    公众号页面数据处理
  • 原文地址:https://www.cnblogs.com/fengxiaoyuan/p/10928351.html
Copyright © 2011-2022 走看看