算法与数据结构-概述(1)

2020-03-10  本文已影响0人  心无所恃_周义

我眼中的算法

  1. 算法和数据结构是计算机科学的基石,它很重要!
  2. 数据结构四大法宝:array 、linked list 、hash table、binary tree!
  3. 选择合适简单的算法,调用优秀的库,比玩弄高级的理论更有意义。玩弄高级算法和数据结构,更多的成为了迎合面试官的工具!!!

大O记法

O(f(n))

  1. 基本参数 n : 数据规模,如待检索的数据量。
  2. f(n) : 将复杂性或运行时间表达为n的函数,如 logn。
  3. O 表示量级(order)。
  4. 实例:二分检索是O(logn),表示需要通过logn量级的步骤去检索一个规模为n的数组。
  5. 细节:
    5.1. f(n)函数表示量级,会去掉常数和低量级。
    5.2. 这种渐进估算在实践中可能存在差异,通常n较小时,复杂的算法很慢。
    5.3. 应该区分最坏情况和期望情况,期望的情况依赖于对输入的假定。如:快速排序最坏情况为O(n^2),期望情况为O(nlogn)。

常见案例

案例 类型 记法
下标访问数组 常数 O(1)
二分检索 对数 O(logn)
字符串比较 线性 O(n)
快速排序 nlogn O(nlogn)
简单排序 平方 O(n^2)
矩阵算法 立方 O(n^3)
集合划分 指数 O(2^n)
上一篇 下一篇

猜你喜欢

热点阅读