数据结构问题

zzq5508022 2009-07-11 12:04:26
对某一问题,輸入一組數n,算法有A , B , C運行。
从运行时间,其中一个算法为O ( n ) , 1个为O ( nlogn )和1個O(n^2) 。一些测量运行时间这些算法给出了如下結果:
Input Size

512 1024 2048
A 70 134 262
B 135 517 2053
C 42 86 182

哪些是其中的算法,并解释所观察到运行时间。
该算法将您选择的不同的數值的N ?
...全文
36 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzq5508022 2009-07-12
  • 打赏
  • 举报
回复
该算法将您选择的不同的數值的N ?

是问当输入512,1024,2048这一组数值时
该选择哪种算法最好?
hlwang_1984 2009-07-12
  • 打赏
  • 举报
回复
单纯的从运行时间上看,对于输入值为512,1024,2048的情况,应该选C吧
对于N更大的情况,就应该选A啦
zzq5508022 2009-07-12
  • 打赏
  • 举报
回复
我这也是英文题目...我翻译过来就这样了...因为我也不是很理解题目的意思~~~原题目是:

For a given problem with inputs of size n, algorithms A, B, C are executed.
In terms of running time, one of the algorithms is O(n), one O(n log n) and
one O(n2). Some measured running times of these algorithms are given
below:

Input Size
512 1024 2048
A 70 134 262
Algorithm B 135 517 2053
C 42 86 182

Identify which algorithm is which and explain the observed running times.
Which algorithm would you select for different values of n?
you74092078 2009-07-11
  • 打赏
  • 举报
回复
顶5楼,哥们数据结构学的还不错
hlwang_1984 2009-07-11
  • 打赏
  • 举报
回复
Input Size

512 1024 2048
A 70 134 262 Input size 变成原来2倍的时候,运行时间也差不多变成原来的2倍,属于线性增长,所以它的时间复杂度为O(N)
B 135 517 2053 Input size 变成原来2倍的时候,运行时间差不多变成原来的4倍,所以它的时间复杂度为O(N^2)
C 42 86 182 Input size 变成原来2倍的时候,运行时间差不多变成原来的2倍多一点,所以它的时间复杂度比较符合O( nlogn )

[Quote=引用楼主 zzq5508022 的帖子:]
该算法将您选择的不同的數值的N ?
[/Quote]
不是很理解这句话的意思
是不是说根据N的不同取值选择不同的算法啊?如果是这样的话,N比较小的时候,可以选择C,而N比较大的时候,就就选择A啦。
bigbug9002 2009-07-11
  • 打赏
  • 举报
回复
A(O( nlogn ))
B(O(n^2))
C(O(n ))
fx397993401 2009-07-11
  • 打赏
  • 举报
回复
冒泡排序算法时间复杂度是O(n^2)。
选择排序算法复杂度是O(n^2)。
插入排序算法时间复杂度是O(n^2)
快速排序快速排序是不稳定的。最理想情况算法时间复杂度O(nlog2n),最坏O(n^2)。
堆排序算法时间复杂度O(nlogn)。
归并排序的时间复杂度是O(nlog2n)。
zzq5508022 2009-07-11
  • 打赏
  • 举报
回复
还是不是很清楚啊,能不能再讲详细点啊!拜托啊.
hlwang_1984 2009-07-11
  • 打赏
  • 举报
回复
不是很lz的问题
从运行时间上看,A,B,C算法的时间复杂度分别是:
A(O( n ))
B(O(n^2))
C(O(nlogn ))

33,028

社区成员

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

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