生活中的算法的实际举例_算法总结:左神class1—1复杂度举例:找出B中不属于A的数...

 前段时间做课题处理数据,cpu超频150%跑了一天才处理完/121的数据,再次意识到数据和算法的重要性,想来抽空学习一下一些算法思想,但没想到这个东西挺上瘾,虽然是个菜鸡,但看了前人的天马行空的灵感之后,还是很唏嘘的,所以总结一下进来看到的对我来说体会到算法魅力的东西。

算法第一课就是算法复杂度的衡量,这里主要是排序基础知识的回顾和递归函数复杂度的计算。(全部用的java,虽然不会写,但是看懂,稍微凑合着能改改成为自己想实现的功能)

时间复杂度是衡量算法好坏的重要指标之一。时间复杂度反映的是不确定性样本量的增长对于算法操作所需时间的影响程度,与算法操作是否涉及到样本量以及涉及了几次直接相关。

评价一个算法流程的好坏,先看时间复杂度的指标,然后再分析不同数据样本下的实际运行时间,也就是常数项时间。

遍历数组时时间复杂度为数组长度n(对应时间复杂度为O(n)),而对数据的元操作(如加减乘除与或非等)、逻辑操作(如if判断)等都属于常数时间内的操作(对应时间复杂度O(1))。

在化简某算法时间复杂度表达式时需遵循以下规则:

  • 对于同一样本量,可省去低阶次数项,仅保留高阶次数项,如O(n^2)+O(n)可化简为O(n^2),O(n)+O(1)可化简为O(n)

  • 可省去样本量前的常量系数,如O(2n)可化简为O(n),O(8)可化简为O(1)

  • 对于不同的

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值