输入22 看下你们的运行时间是多少.docx

上传人:b****5 文档编号:5019811 上传时间:2022-12-12 格式:DOCX 页数:21 大小:71.87KB
下载 相关 举报
输入22 看下你们的运行时间是多少.docx_第1页
第1页 / 共21页
输入22 看下你们的运行时间是多少.docx_第2页
第2页 / 共21页
输入22 看下你们的运行时间是多少.docx_第3页
第3页 / 共21页
输入22 看下你们的运行时间是多少.docx_第4页
第4页 / 共21页
输入22 看下你们的运行时间是多少.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

输入22 看下你们的运行时间是多少.docx

《输入22 看下你们的运行时间是多少.docx》由会员分享,可在线阅读,更多相关《输入22 看下你们的运行时间是多少.docx(21页珍藏版)》请在冰豆网上搜索。

输入22 看下你们的运行时间是多少.docx

输入22看下你们的运行时间是多少

输入22看下你们的运行时间是多少。

我的是67。

324秒

#include

#include

voidmove(chargetone,charputone)

{

cout<"<

}

voidhanoi(intn,chara,charb,charc)

{

voidmove(chargetone,charputone);

if(n==1)move(a,c);

else

{

hanoi(n-1,a,c,b);

move(a,c);

hanoi(n-1,b,a,c);

}

}

voidmain()

{

unsignedstart,finish;

intn;

chara='a',charb='b',charc='c';

cout<<"pleaseinputanumber:

";

cin>>n;

start=GetTickCount();

hanoi(n,a,b,c);

finish=GetTickCount();

floattime=(finish-start)/1000.0;

cout<<"timeis"<

}

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

回复次数:

29

∙wangdeqie

∙(似水流年)

∙等 级:

∙3

#1楼得分:

0回复于:

2008-08-0611:

47:

36

C/C++code

timeis157.5

Pressanykeytocontinue

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#2楼得分:

0回复于:

2008-08-0611:

51:

37

你的机子是不是太慢了。

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙wangdeqie

∙(似水流年)

∙等 级:

∙3

#3楼得分:

0回复于:

2008-08-0612:

20:

29

引用2楼FallingStar08的回复:

你的机子是不是太慢了。

是啊,快3分钟了,我还以为是死循环呢,一直运行个没完没了的

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙zxcv8356631

∙(JustLook)

∙等 级:

#4楼得分:

0回复于:

2008-08-0612:

24:

52

报个数据

R版..

  输入20运行时间107.734

把move函数改成inline

  输入20运行时间99.078

把move里的cout去掉成为空的inline函数

  输入20运行时间0.016

我自己吓了一跳...

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙nirendao

∙(黑山老猫)

∙等 级:

#5楼得分:

0回复于:

2008-08-0612:

31:

31

何必使用windows.h呢?

用time.h:

clock_tt1,t2;

t1=start();

...

t2=end();

doubletime=(t2-t1)/CLOCKS_PER_SECONDS;

就可以了

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#6楼得分:

0回复于:

2008-08-0612:

34:

59

集思广益讨论如何优化这个程序。

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙ykx_yeer

∙(ykx_yeer)

∙等 级:

#7楼得分:

0回复于:

2008-08-0612:

49:

43

呵呵

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙e_sharp

∙(楼长)

∙等 级:

#8楼得分:

0回复于:

2008-08-0613:

02:

33

去掉move,果然很快

引用4楼zxcv8356631的回复:

报个数据R版..输入20运行时间107.734把move函数改成inline输入20运行时间99.078把move里的cout去掉成为空的inline函数输入20运行时间0.016我自己吓了一跳...

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#9楼得分:

0回复于:

2008-08-0613:

17:

16

把MOVE去掉程序就不完整了啊

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙WuBill

∙(Bill)

∙等 级:

#10楼得分:

0回复于:

2008-08-0613:

24:

07

输入22

timeis95.469

Pressanykeytocontinue

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙lzr4304061988012

∙(graduate,达也,加油!

∙等 级:

#11楼得分:

0回复于:

2008-08-0613:

30:

35

看我LENOVO

现在还没跑完

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙lzr4304061988012

∙(graduate,达也,加油!

∙等 级:

#12楼得分:

0回复于:

2008-08-0613:

33:

25

timeis223.14

oh,mygod!

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#13楼得分:

0回复于:

2008-08-0613:

35:

46

可见你们的机子多么烂了。

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙Lx_china

∙(萝卜)

∙等 级:

#14楼得分:

0回复于:

2008-08-0613:

57:

09

引用13楼FallingStar08的回复:

可见你们的机子多么烂了。

这题无解,输出到终端速度就这样。

fprintf直接写到文件里耗时4.25

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙Lx_china

∙(萝卜)

∙等 级:

#15楼得分:

0回复于:

2008-08-0613:

58:

38

总共输出了16,777,212字节数据

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#16楼得分:

0回复于:

2008-08-0613:

58:

39

我ASP2800+用了67秒。

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#17楼得分:

0回复于:

2008-08-0613:

59:

09

自觉机子已经很烂了

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙Lx_china

∙(萝卜)

∙等 级:

#18楼得分:

0回复于:

2008-08-0614:

02:

05

刚用release版本跑了一下,2.672秒,输出文件25,165,818字节(上次没算回车换行)

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙mLee79

∙等 级:

#19楼得分:

10回复于:

2008-08-0614:

02:

14

这东西有虾米好优化的,完全看输出速度,当然要异步IO快...不过你的东东也太慢了...

C/C++code

#include

#include

typedefunsignedlongu32;

#ifIS_BIG_ENDIAN

#defineXINFO_A_2_B(a,b)(u32)(((a)<<24)|('-'<<16)|((b)<<8)|('\n'<<0))

#else

#defineXINFO_A_2_B(a,b)(u32)(((a)<<0)|('-'<<8)|((b)<<16)|('\n'<<24))

#endif

staticconstintsBox_1[]={1,0,3,2,5,4};

staticconstintsBox_2[]={2,4,0,5,1,3};

staticconstu32sInfo1[]={

XINFO_A_2_B('A','C'),

XINFO_A_2_B('A','B'),

XINFO_A_2_B('B','C'),

XINFO_A_2_B('B','A'),

XINFO_A_2_B('C','B'),

XINFO_A_2_B('C','A')};

staticconstu32sInfo2[]={

XINFO_A_2_B('B','C'),

XINFO_A_2_B('C','B'),

XINFO_A_2_B('A','C'),

XINFO_A_2_B('C','A'),

XINFO_A_2_B('A','B'),

XINFO_A_2_B('B','A')};

#defineXMAXIMUM_N(128)

#defineXBUFFSIZE(1024*16)/*even*/

voidhanio(intN,FILE*ofs)

{

intcurr=0,stack[XMAXIMUM_N],*stack_ptr=stack;

u32fbuff[XBUFFSIZE],*constfbuff_end=fbuff+XBUFFSIZE,*fbuff_ptr=fbuff;

while

(1)

{

if(1!

=N)

{

*stack_ptr++=sBox_2[curr]|((--N)<<8);

curr=sBox_1[curr];

}

else

{

*fbuff_ptr++=sInfo1[curr];/*odd*/

if(stack_ptr==stack)

break;/*done*/

curr=*--stack_ptr;

N=curr>>8;

curr&=0xFF;

*fbuff_ptr++=sInfo2[curr];/*even*/

if(fbuff_ptr==fbuff_end)

{

fwrite(fbuff,1,sizeof(fbuff),ofs);

fbuff_ptr=fbuff;

}

}

}

if(fbuff_ptr!

=fbuff)

fwrite(fbuff,1,sizeof(u32)*(fbuff_ptr-fbuff),ofs);

}

intmain(intargc,char*argv[])

{

inti;

intN=16;

FILE*ofs=NULL;

for(i=1;i

{

if(argv[i][0]=='-')

{

switch(argv[i][1])

{

case'n':

case'N':

N=atoi(argv[i]+2);

break;

case'o':

case'O':

if(NULL!

=ofs)

exit

(1);

ofs=fopen(argv[i]+2,"wb");

break;

}

}

}

if(NULL==ofs)

ofs=stdout;

if(N<=0)

N=1;

if(N>XMAXIMUM_N)

N=XMAXIMUM_N;

hanio(N,ofs);

fclose(ofs);

return0;

}

$cl/nologo/O2/Ox/Ogt2.c;forAAin20222425262830;doechoN==$AA;time./t2-N$AA-ONUL;done;

t2.c

N==20

real  0m0.047s

user  0m0.015s

sys  0m0.031s

N==22

real  0m0.046s

user  0m0.015s

sys  0m0.015s

N==24

real  0m0.157s

user  0m0.015s

sys  0m0.015s

N==25

real  0m0.281s

user  0m0.015s

sys  0m0.015s

N==26

real  0m0.547s

user  0m0.015s

sys  0m0.015s

N==28

real  0m2.125s

user  0m0.015s

sys  0m0.015s

N==30

real  0m8.437s

user  0m0.015s

sys  0m0.000s

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#20楼得分:

0回复于:

2008-08-0614:

04:

51

超人先生。

你这个偶看不懂啊

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙skybate

∙(天涯)

∙等 级:

#21楼得分:

0回复于:

2008-08-0614:

05:

34

我的直接运行死机了

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#22楼得分:

0回复于:

2008-08-0614:

06:

08

我晕

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙Lx_china

∙(萝卜)

∙等 级:

#23楼得分:

0回复于:

2008-08-0614:

09:

39

TRACE0issimilartoTRACEandisonevariantofagroupoftracemacrosthatyoucanusefordebugoutput.

TRACE0(

   exp

忽然想起了这个,楼主是想告诉我们不要没事打印一堆没用的调试信息,很慢的

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#24楼得分:

0回复于:

2008-08-0614:

11:

30

汉诺塔(又称河内塔)问题是印度的一个古老的传说。

开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。

解答结果请自己运行计算,程序见尾部。

面对庞大的数字(移动圆片的次数)184********709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。

后来,这个传说就演变为汉诺塔游戏:

1.有三根杆子A,B,C。

A杆上有若干碟子 

2.每次移动一块碟子,小的只能叠在大的上面 

3.把所有碟子从A杆全部移到C杆上

经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:

如3阶汉诺塔的移动:

A→C,A→B,C→B,A→C,B→A,B→C,A→C

此外,汉诺塔问题也是程序设计中的经典递归问题。

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#25楼得分:

0回复于:

2008-08-0614:

16:

35

64位个金片的话,够我们的超级计算机算几十年了

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙lijpbasin

∙(lijpbasin)

∙等 级:

#26楼得分:

5回复于:

2008-08-0614:

33:

04

将输出重定向到文件

timeis14.078

直接在屏幕上输出

timeis217.406

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙congguohua

∙(咔嚓)

∙等 级:

#27楼得分:

5回复于:

2008-08-0615:

00:

03

直接在屏幕上输出

timeis836.196

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙FallingStar08

∙(星光陨落)

∙等 级:

#28楼得分:

0回复于:

2008-08-0615:

37:

40

等待高手出现。

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

∙Vegertar

∙(diao)

∙等 级:

#29楼得分:

0回复于:

2008-08-0616:

02:

33

19L强人!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1