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

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

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

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

使用某种数据结构

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

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

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

#双指针遍历

#空间换时间

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

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

#数据预处理

#二分查找

几个简单的判定方法:

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

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

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

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

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

#数学推理

微信公众号“计算机基础学”关注我哟

发布了57 篇原创文章 · 获赞 13 · 访问量 3176

猜你喜欢

转载自blog.csdn.net/qq_41985559/article/details/102009240