数据结构与算法第一篇

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

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

posted @ 2019-05-27 22:55  冯小圆  阅读(263)  评论(0编辑  收藏  举报