出一道特经典的题大家做做!

jhl1983 2007-10-11 09:55:10
给定—个二维n×n数组A[1...n][1.....n] 和参数k ,其中数组每行和每列从小到大排
序。分别设计下列算法a ∼ h,判断数组中是否存在k ,如果存在算法返回true ,否则
算法返回false 。例如:8×8二维数组A 如下
2 4 7 11 12 13 19 23
3 8 14 16 17 24 25 27
6 10 19 27 31 35 37 42
9 13 26 30 32 40 43 48
11 15 29 34 41 42 45 50
14 17 33 37 44 49 51 61
18 22 35 38 46 53 57 63
21 25 39 42 47 54 60 64
(a)设计—个时间复杂性为O(n2)迭代算法。
(b)设计—个时间复杂性为O(n2)递归算法。
(c)设计—个时间复杂性为O(nlogn)迭代算法。
(d)设计—个时间复杂性为O(nlogn)递归算法。
(e)设计—个时间复杂性为O(n)迭代算法。
(f)设计—个时间复杂性为O(n)递归算法。
(g)设计—个时间复杂性为O(logn) 迭代算法。
(h)设计—个时间复杂性为O(logn) 递归算法。



这道题很意思很能锻炼水平的
...全文
317 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
medie2005 2007-10-13
  • 打赏
  • 举报
回复
就是杨氏矩阵,已经有相当成熟的算法。
ajleo 2007-10-13
  • 打赏
  • 举报
回复
n2的不就是矩阵扫描么?
我想问一个问题,时间复杂性是考察循环的层数还是同时要考察比较的次数?
shshsh_0510 2007-10-12
  • 打赏
  • 举报
回复
(h):横,竖2分查找,即可确定在哪个4方格中
(f):横,竖顺序查找,即可确定在哪个4方格中
(d):(h)运行n遍 :)
(b): 遍历矩阵什么也不做 ,然后 (h),为 O(n2 + logn)=O(n2)
yaunx 2007-10-12
  • 打赏
  • 举报
回复
A[n/2][n/2]将整个矩阵划分为4个部分,每个部分的性质和A相同,左上元素最小,右下元素最大

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧