【算法】降低时间复杂度的方法

对于一个问题的算法来说,之所以称之为算法,首先它必须能够解决这个问题(称为准确性)。其次,通过这个算法编写的程序要求在任何

情况下不能崩溃(称为健壮性)。

如果准确性和健壮性都满足,接下来,就要考虑最重要的一点:通过算法编写的程序,运行的效率怎么样。
在这里插入图片描述
在这里插入图片描述
#充分利用已有信息

使用某种数据结构

优先级队列 使用的两种场景:

  1. 想要根据Map的value值对Map进行排序

  2. 想要对某几个元素的集合进行排序,此时可以针对这几个元素定义一个类class

#双指针遍历

#空间换时间

算法的时间复杂度和空间复杂度是可以相互转化的。

谷歌浏览器相比于其他的浏览器,运行速度要快。是因为它占用了更多的内存空间,以空间换取了时间。

#数据预处理

#二分查找

几个简单的判定方法:

1.常数级是O(1):就是不管n多大,始终是一个常数;

比如说执行一条语句,a+b;

2.通常循环是O(n)(一层);(因为执行n次常数级操作)

​ 嵌套通常情况是O(n^m);

3.采用二分策略可以降到log2(n);

#数学推理

微信“图像处理与模式识别研究所”关注我呦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值