算法趣味性.pptVIP

  • 19
  • 0
  • 约3.14千字
  • 约 16页
  • 2016-06-06 发布于安徽
  • 举报
算法趣味性.ppt

Data Mining: Concepts and Techniques 算法的趣味性 ?骆嘉伟 计算机与通信学院 湖南大学 Jt_ljw@,luojiawei@ 最大全为1正方形 题目描述: 有n*n的格子。每个里面放的数字要么是0,要么是1。请找出一个最大的正方形,使得里面的数字全部为1. 数据范围:1 = n = 1000 最大全为1正方形—解法1 最简单的想法,自然是:对于每个点,检测以它为左上角的边长为1..n的全1正方形是否存在。 时间复杂度:O(n^5) 枚举每个点point(x,y) : O(n^2) 枚举正方形的边长side : O(n) 检测边长为side的正方形是否存在: O(n^2) 最大全为1正方形—分析 对于刚才的算法1,唯一一点不能被优化的是: 枚举每个点point(x,y); 可优化的部分: 寻找side. O(n) - O(log n) - O(1) 检测以point(x,y)为左上角顶点,side为边长的正方形是否存在. O(n ^ 2) - O(1) 下面来详细讨论一下优化. 优化1 –检测子正方形是否存在 观察一个全为1的子正方形. 很显然,这个子正方形的所有数据之和为side^2. 若一个子正方形的所有数据之和不为side ^2,那么它必不符合条件.包含它的正方形也不符合条件. 所以,可以利用和,来检测. 优化1–

文档评论(0)

1亿VIP精品文档

相关文档