算法优化初学笔记

这篇博客介绍了算法优化的基本概念,包括时间复杂度和空间复杂度,并通过二分法、二叉树遍历等案例进行讲解。同时,探讨了数组、链表和跳表的特性,以及它们在查找和插入操作上的效率对比。此外,文章还涉及了树和图的基本定义,强调了二叉搜索树和平衡二叉树的重要性。
摘要由CSDN通过智能技术生成

声明

所有截图来自于极客大学算法课,本文为个人笔记,未经允许不得转载

时间复杂度和空间复杂度

  • O(1)

    • 常数时间复杂度
    • 程序执行次数与输入值N无关
  • O(N)

    • 线性时间复杂度
    • 程序执行次数与输入值N之间是一次函数关系
for (int i=1;i<=n;i++)
{
  cout<<i;
}
  • O(N2)

    • 可以由线性时间复杂度的语句嵌套得来
    for (int i = 1;i<=n;i++)
    {
      for (int j = 1;j<=n;j++)
      {
        cout<<i<<" "<<j;
      }
    }
    //每个i循环节点下面都有一百个j循环节点
    //又因为有100个i循环节点
    //所以,共有100^2个循环节点
    
    • 并列关系的数个O(N)时间复杂度循环体组成的程序仍为O(N)时间复杂度
  • O( l o g x ( N ) log_x(N) logx(N))

示例:

 for(int i = 1; i<n;i=i*2)
 {
    cout<<i;
 }

以上代码的执行次数为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值