ddhhdd

2020年12月5日

01 时间复杂度

怎样来衡量算法的好坏?

衡量算法的好坏有很多标准,其中最重要的两大标准是算法的时间复杂度空间复杂度

时间复杂度和空间复杂度究竟是什么呢?首先,让我们来想象一个场景。

某一天,小灰和大黄实现同一个需求。一天后,小灰和大黄交付了各自的代码,两人的代码实现的功能差不多。

大黄的代码运行一次要花100ms,占用内存5MB。
小灰的代码运行一次要花100s,占用内存500MB。

在上述场景中,小灰虽然也按照老板的要求实现了功能,但他的代码存在两个很严重的问题。

  1. 运行时间长
  2. 占用空间大

由此可见,运行时间的长短和占用内存空间的大小,是衡量程序好坏的重要因素。

可是,如果代码都还没有运行,我怎么能预知代码运行所花的时间呢?

由于受运行环境和输入规模的影响,代码的绝对执行时间是无法预估的。但我们却可以预估代码的基本操作执行次数。

1.1) 基本操作执行次数

关于代码的基本操作执行次数,下面用生活中的4个场景来进行说明。

eg-(1a)------------------

场景1:给小灰1个长度为10cm的面包,小灰每3分钟吃掉1cm,那么吃掉整个面包需要多久?

分类:

技术点:

相关文章: