• 数据结构与算法第一篇


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

    衡量的标准(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个算法: 递归,排序,二分查找,搜索,哈希算法,贪心算法,分治算法,回溯算法,动态规划,字符串匹配算法

  • 相关阅读:
    编写程序,验证string是ipV4地址
    TCP三次握手和四次挥手
    链表和数组的区别
    cookie和session的区别
    GET和POST的区别
    TCP和UDP的区别
    java HashMap和Hashtable的区别
    java 堆和栈的区别
    最小栈的实现
    关于几个位运算的算法分析
  • 原文地址:https://www.cnblogs.com/fengxiaoyuan/p/10928351.html
Copyright © 2020-2023  润新知