为什么不会java的我要脑抽地学一本based on java的Algorithms呢?

呵,因为手滑选了一门课……

Well,就是大家都知道的那本princeton的Algorithms

而且我啥都不会(是的,我连修改PATH都要百度)

但是既然选了,就继续学下去吧,顺便在这里记录一下

如果有人看到这里,觉得这个人的问题实在是蠢不可及

请大发慈悲地告诉我解答

多谢

祝您健康幸福!

今天的问题是

我好不容易配置好了IDEA和algs4.jar(虽然我并不知道这是啥呵呵)

当然要试一下书上的例子

我选择了比较Selection sort和insertion sort

用的就是书上的例子(以及比较方法,就是生成T次N序列,每次排序时间累加,比较这个累加值)

书上的结果是这样的:

我的结果

java SortCompare Insertion Selection 1000 100

For 1000 random Doubles
    Insertion is 0.83 times faster than Selection
0.1750  0.1460  // t1 for insertion  t2 for Selection

java SortCompare Insertion Selection 10000 100

For 10000 random Doubles
    Insertion is 0.60 times faster than Selection
14.1370  8.5240
java SortCompare Insertion Selection 100 100
For 100 random Doubles
    Insertion is 3.17 times faster than Selection
0.0060  0.0190

java SortCompare Insertion Selection 500 100

For 500 random Doubles
    Insertion is 0.88 times faster than Selection
0.0640  0.0560
试了4组参数,只有N减少到100的时候,insertion才有优势,其它三种情形都是selection占优

跟书上例子的结果差别好大

如果有走过路过的,请告诉我

这个情形是合理的吗?或许有什么算法之外的因素导致呢?比如语言本身的优化(乱讲……)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值