不是吧,至少一半的内循环会执行至少一次,平均来说有LogN次内循环吧。
【 在 finlab (挨踢卢瑟) 的大作中提到: 】
: 标 题: Re: 出乎意料,C++和dotnet6比dotnet5慢10% (转载)
: 发信站: 水木社区 (Tue Dec 14 21:42:36 2021), 站内
:
: 分析显示,有5%的cpu花在开方上了。
:
: 毕竟大素数是非常稀疏的, 后面执行到j*j的机会很少。
:
:
:
: 【 在 hgoldfish 的大作中提到: 】
: : 里面有很多时候是测试了一两个素数就跳出循环了。用开方说不定速度更慢。
: : 本质上是这个素数算法比较低效。不过是这个算法是很好的例子,解释 c#, java 这些 jit 语言和 c++ 的区别。c++ 对同一个算法,可以无限优化跟手动汇编差不多快,c#/java 不好搞。但 c#/java 随便撸都能有一个还不错的结果,至少不会访问内存崩溃掉。
: :
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 123.112.64.*]
--
FROM 73.15.185.*