▲▲▲实在是无聊,郁闷。就把C++和Java比一下速度。算10000!(10000的阶乘)▲▲▲

MPU 2003-06-02 10:13:51
▲▲▲实在是无聊,郁闷。就把C++和Java比一下速度。算10000!(10000的阶乘)▲▲

用VC++6郁闷了一下,写滚动条和音量控制就用几百行。(SDK)

于是想找地方休息一下!

就用10000!(10000的阶乘)比一下C++和Java的速度。

用的同样的算法,算法没有优化!

其实不用比就知道Java肯定慢!!

我电脑的配置AMD 雷鸟 1G ,256 M内存。升技主板。


VC++ 6 Release版 11 s (Debug版运行结果错误,高手指点)
Dev-C++ 15 s
J2SE 25 s

-------测试代码如下---------

-------C++代码------------
#include<iostream>
#include<cstdlib>
using std::cout;
using std::cin;
using std::endl;

int main(int argc, char *argv[])
{
int Data[100000]; //N位数据的整数数组
int Digit;
int i,j,r,k;
int N = 10000; //10000的阶乘

for ( i=1;i<40;i++) //将数组初始值设为0
Data[i] = 0;

Data[0] = 1;
Data[1] = 1;
Digit = 1;


for ( i=1; i<N+1; i++)
{
for ( j=1; j<Digit+1 ; j++ )
Data[j] *= i; //数组中元素的运算
for ( j=1; j<Digit+1; j++ )
{
if ( Data[j]>10 )
{

for ( r=1; r<Digit+1; r++ )
{
if ( Data[Digit]>10)
Digit++; //当数组中的元素值大于10时,则位数加1
Data[r+1] += Data[r] / 10;
//前一位数组元素值=前一位数组元素值+此位数组元素
//值除以10

Data[r] = Data[r] % 10;
//此位数组元素值=此位数数组元素值除以10取其余数
}
}
}
}


for (k=Digit;k>0 ;k-- )
cout<<Data[k]; //输出数组中的元素
cout<<endl;

//system("pause");
return 0;
}


--------Java代码----------
import java.io.*;

class out10000
{
public static void main(String[] args)
throws IOException ,NumberFormatException,ArrayIndexOutOfBoundsException
{
int Data[] = new int[100000]; //N位数据的整数数组
int Digit;
int i,j,r,k;
int N = 10000; ////10000的阶乘

for ( i=1;i<40;i++) //将数组初始值设为0
Data[i] = 0;

Data[0] = 1;
Data[1] = 1;
Digit = 1;

try
{

for ( i=1; i<N+1; i++)
{
for ( j=1; j<Digit+1 ; j++ )
Data[j] *= i;
//数组中元素的运算
for ( j=1; j<Digit+1; j++ )
{
if ( Data[j]>10 )
{
for ( r=1; r<Digit+1; r++ )
{
if ( Data[Digit]>10)
Digit++; //当数组中的元素值大于10时,则位数加1
Data[r+1] += Data[r] / 10;
//前一位数组元素值=前一位数组元素值+此位数组元素
//值除以10

Data[r] = Data[r] % 10;
//此位数组元素值=此位数数组元素值除以10取其余数
}
}
}
}
for (k=Digit;k>0 ;k-- )
System.out.print(Data[k]); //输出数组中的元素
System.out.println();
}
catch(ArrayIndexOutOfBoundsException ArrayOut)
{
System.out.println("Array Index Out Of Bounds Exception!");
}
}

}

...全文
55 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkenshin 2003-06-03
  • 打赏
  • 举报
回复
干吗比速度??

有什么好比的啊??

不就是为了一口饭吃吗?学什么不都一样啊?
ChDw 2003-06-03
  • 打赏
  • 举报
回复
在java里面算这么大的数字运算肯定用BigInteger啦
算10000!在我的机器上只要1.5 s左右
alemjann 2003-06-03
  • 打赏
  • 举报
回复
我的机器用java运行了12秒!
hatpdb 2003-06-03
  • 打赏
  • 举报
回复
你看看这个网站
JSP做的我感觉很快!好象jsp做的还没有这样快的啊?java还是比c好很多的啊!!

http://www.scgj.net/
希偌 2003-06-03
  • 打赏
  • 举报
回复
果然是无聊加郁闷的人,这种比较结果还算理想啦,java还可以慢上好几圈,呵呵
glassprogrammer 2003-06-03
  • 打赏
  • 举报
回复
也就是Java只是比C++慢一倍左右, 呵呵, 还是能接受的嘛
hatpdb 2003-06-03
  • 打赏
  • 举报
回复
你吧java代码编译成机器码试试!!
shine333 2003-06-03
  • 打赏
  • 举报
回复
连小指头都知道肯定java慢,
而且基于数组的比较也有一点不公平,
java和c++的数组并不能直接对应
Hodex 2003-06-02
  • 打赏
  • 举报
回复
没有谁说java速度超过了c++呀
不然的话,我们今天还能看见c++??

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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