数据结构与算法笔记(一)简介

本文探讨了数据结构与算法的重要性,强调降低时间复杂度以优化程序执行效率。介绍了复杂度概念,如时间复杂度O(n)、O(logn)等,并通过实例说明如何通过优化算法和选择合适数据结构降低复杂度。最后讨论了时空转换策略,例如用空间换时间的方法来优化计算任务。
摘要由CSDN通过智能技术生成

数据结构与算法至关重要。

计算机是一个内存有限,计算能力有限的机器,如果每段时间处理的数据增加量大于每段时间能处理的数据量,时间越长,电脑执行会越来越慢直至死机。

复杂度:

复杂度是衡量程序运行的效率的量度因素。执行代码消耗计算时间和计算空间,衡量的是时间复杂度和空间复杂度。

复杂度是一个关于输入量n的函数。假如代码的复杂度f(n)。O(n)表示的是复杂度与计算实例的个数n线性相关;O(logn)表示的是复杂度与计算实例的个数n对数相关。

 

  • 复杂度与具体的常数无关{    O(n)与O(3n)是同样的复杂度        }
  • 多项式级的复杂度相加时,选择高位作为结果
  • O(1)表示一个特殊复杂度,与输入量n无关

对同一个问题,采用不同的编码方式,对空间和时间的消耗可能是不一样的。

例1:要把一串数组倒装

方法一:用两个数组,使用两个for循环,先给另一个数组初始化(数组2复制数组1)再赋值(倒装),代码的时间复杂度是O(n)+O(n)也就是O(n)

方法二:定义一个变量,通过一个for循环,从0遍历到数组1的一半,交换首尾对应的元素,最后再输出数组1。执行次数是数组长度的一般,时间复杂度是O(n/2),也就是O(n)。

虽然时间复杂度一样,但明显第二个方法更快点。

例2:找出数组中出现次数最多的数字

采用双层循环,第一层循环对数组中的每个元素遍历,第二层循环,对于每个元素计算出现的次数,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值