![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
dengdefang
这个作者很懒,什么都没留下…
展开
-
树状数组--区间求和
树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n],那么查询a[1]+...+a[n]的时间是log(n)级别的。所以如果要解决“数组中的元素不断被修改,怎么才能快速地获取数组中连续m个数的和”这个问题的话,用树状数组就再好不过了 首先,什么是树状数组呢?树状数组就是用另外一个数组再保存当前数组的值,设树状数组为C[n],那么有C[i] = a[i -原创 2012-09-12 16:19:28 · 12928 阅读 · 1 评论 -
以log(n)的时间求矩形内的点
设想这么一个简单的问题,在一个平面上有n个点,给定一个矩形,问位于矩形内的点有哪些。 这个问题的简单思路非常简单,每次遍历所有点,看其是否在给定的矩形中。时间复杂度呢?单次查询的时间就是一次遍历的时间,也就是O(n),但如果给定的点基本不变,但查询量特别大,每次查询都要以O(n)的复杂度。能不能把给定的数据预处理一下,然后以后每次查询的复杂度降低呢? 一个基本的思路是把相邻的点用最小包围矩形包原创 2013-10-31 14:26:04 · 1209 阅读 · 2 评论