算法学习条记(Hello算法)—— 时间复杂度

打印 上一主题 下一主题

主题 539|帖子 539|积分 1617

1.1 统计时间增长趋势

时间复杂度分析统计的不是算法运行时间,而是算法运行时间随着数据量变大时的增长趋势。
  1. // 算法 A 的时间复杂度:常数阶
  2. void algorithm_A(int n) {
  3.     System.out.println(0);
  4. }
  5. // 算法 B 的时间复杂度:线性阶
  6. void algorithm_B(int n) {
  7.     for (int i = 0; i < n; i++) {
  8.         System.out.println(0);
  9.     }
  10. }
  11. // 算法 C 的时间复杂度:常数阶
  12. void algorithm_C(int n) {
  13.     for (int i = 0; i < 1000000; i++) {
  14.         System.out.println(0);
  15.     }
  16. }
复制代码


  • 算法 A:
    时间复杂度为 O(1),这是由于算法A不管输入的 n 是什么值,它都只实行了一次操作——打印数字0。这意味着算法的运行时间是固定的,与输入的巨细无关。
  • 算法 B:
    时间复杂度为 O(n),这是由于算法B中的循环将根据输入的 n 实行 n 次打印操作。当 n 增长时,实行的操作次数也成比例地增长。
  • 算法 C:
    时间复杂度同样为 O(1),只管这个算法使用了一个循环,但循环的次数是固定的1000000次,与输入参数 n 的值无关。这意味着无论 n 是什么值,算法C都将实行类似数量的操作,因此运行时间是固定的。

1.2 时间复杂度分析有哪些特点



  • 时间复杂度可以或许有效评估算法效率。
  • 时间复杂度的推算方法更简便。
  • 时间复杂度也存在一定的范围性。
时间复杂度分析本质上是计算“操作数量
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表