社区
Java SE
帖子详情
这两个算法哪个的速度快?
transposon
2008-01-08 09:44:18
已知有实现同一功能的两个算法,其时间复杂度分别为O(2^n)和O(n^10),假设现实计算机可连续运行的时间为100天,又每秒可执行基本操作为10^5次。试问在此条件下,这两个算法可解决问题的规模(即n的范围)各为多少?哪个算法更合适?试说明理由
不能用电脑和计算器,这题该咋做?
...全文
231
3
打赏
收藏
这两个算法哪个的速度快?
已知有实现同一功能的两个算法,其时间复杂度分别为O(2^n)和O(n^10),假设现实计算机可连续运行的时间为100天,又每秒可执行基本操作为10^5次。试问在此条件下,这两个算法可解决问题的规模(即n的范围)各为多少?哪个算法更合适?试说明理由 不能用电脑和计算器,这题该咋做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Dan1980
2008-01-09
打赏
举报
回复
动笔算一算就出来了:
100天=100*24*60*60秒
又,一秒钟可执行的基本操作为10^5次
则,100天可执行的基本操作为100*24*60*60*(10^5)=864000000000次
分别解方程:
2^x=864000000000 ---- (1)
x^10=864000000000-----(2)
由方程(1)可估计出x在39-40之间,所以算法的最大规模为39
由方程(2)可估计出x在15-16之间,所以算法的最大规模为15
所以在当前条件下,用算法一更好。
但是,算法一的复杂度是指数级的,算法二的复杂度是乘方级(10次方)的,通常指数级的增长速度快于乘方级,虽然2^n一开始增长较慢,但速度更快,所以一旦n增长到某个临界点之上,算法一耗费的时间最终将更多。至于这个临界点是多少,算起来太麻烦了,可能要借助计算机。
老紫竹
2008-01-09
打赏
举报
回复
问题关键在于,
1 2^n 和 n^10 复杂度相同的点在哪里?
2 给定的时间内,是不是到了那个复杂度了。
DirectRay
2008-01-08
打赏
举报
回复
肯定是后面一个好啊。你随着n的取值的增长,一旦超过10,那么空间复杂度就上去了啊。
JAVA近百种
算法
大全
最近找到的JAVA近百种
算法
大全 分享一下 java
算法
大全,有近100多种常见
算法
的源代码,是学习JAVA
算法
的难得资料,需要的童鞋来下载吧!
完整视频-coursera公开课 普林斯顿
算法
ⅠⅡ部分
本资源为BT文件,下载
速度快
,如果P2P工具支持下载字幕可以进行下载 Coursera上的公开课,普林斯顿大学教授Robert Sedgewick主讲《Algorithms》
算法
Java实现 课程网站http://algs4.cs.princeton.edu/home/ 视频一个两部分,
算法
(一)主要集中在基础的数据结构、排序、查找
算法
。 相关主题有:并查集
算法
,二分查找,栈,队列,背包,插入排序,选择排序,希尔排序,快速排序, 三切分快排,归并排序,堆排序,二分堆,二分查找树,红黑树,链表,线性哈希表,Graham扫描,kd树。
算法
(二)主要讲解图论和字符串处理的相关
算法
。相关主题有:深度优先搜索,宽度优先搜索,拓扑排序,Kosaraju-Sharir
算法
,Kruskal
算法
,Prim
算法
,Dijkistra
算法
,Bellman-Ford
算法
, Ford-Fulkerson
算法
, LSD radix sort
算法
, MSD radix sort
算法
, 3-way radix 快排
算法
, 多路尝试法, 三元查找尝试法, Knuth-Morris-Pratt
算法
, Boyer-Moore
算法
, Rabin-Karp
算法
, 正则匹配, run-length编码, Huffman编码, LZW压缩, 还有Burrows-Wheeler变换。
哈希
算法
为什么存取
速度快
?
哈希
算法
存取之所以快,是因为其直接通过关键字key得到要存取的记录内存存储位置 试想这样的场景,你很想学太极拳,听说学校有个叫张三丰的人打得特别好,于是你到学校学生处找人,学生处的工作人员可能会拿出学生名单,一个一个的查找,最终告诉你,学校没这个人,并说张三丰几百年前就已经在武当山作古了。可如果你找对了人,比如在操场上找那些爱运动的同学,人家会告诉你,"哦,你找张三丰呀,有有有,我带你去。
最快速度求
两个
数组之交集
算法
该题目来自58同城的二面,用最快速度求
两个
数组之交集
算法
。 比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}。
算法
一:在大多数情况,也就是一般的情况下,大家都能想出最暴力的解法,通常也就是采用遍历或者枚举的办法来解决问题。 该题需要找出
两个
数组的交集,最简单的一个办法就是用A数组里面的所有数去匹配B数组里面的数。假设
两个
数组的大小都是n,那
最快速度求
两个
数组之交集
算法
与hash
一个题目 该题目来自58同城的二面,用最快速度求
两个
数组之交集
算法
。 比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}。
算法
一:在大多数情况,也就是一般的情况下,大家都能想出最暴力的解法,通常也就是采用遍历或者枚举的办法来解决问题。 该题需要找出
两个
数组的交集,最简单的一个办法就是用A数组里面的所有数去匹配B数组里面的数。假设
两个
数组的大小都是n,...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章