博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的马的遍历代码[Teaks & xgluxv]
阅读量:5836 次
发布时间:2019-06-18

本文共 1629 字,大约阅读时间需要 5 分钟。

今天在园子首页上看到一篇  的文章 用来比较了一下c++和c#的代码运行速度的问题。本来这两种语言没有什么可比性,但后边看到文章里提到的出结果的时间 都超出了我的想像。因此用vc++2005和vc#2005分别写了一下相同的算法,各位网友可以把代码下载下去 自行运行比较一下。
我这里把算法代码列出一下 以c#版本为例:
 1
None.gif
    
struct
 CSPoint
 2
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif
{
 3InBlock.gif        public int x;
 4InBlock.gif        public int y;
 5ExpandedBlockEnd.gif    }
 6
None.gif
 7
None.gif    
class
 othercsHorse
 8
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif
{
 9ExpandedSubBlockStart.gifContractedSubBlock.gif        int[] DeltaX =dot.gif-2-11221-1-2 };
10ExpandedSubBlockStart.gifContractedSubBlock.gif        int[] DeltaY =dot.gif1221-1-2-2-1 };
11InBlock.gif        int[,] Game = new int[1212];
12InBlock.gif        CSPoint[] csPoint = new CSPoint[64];
13InBlock.gif        int step;
14InBlock.gif        int ResultCount;
15InBlock.gif
16InBlock.gif        public othercsHorse()
17ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
18InBlock.gif            for (int i = 0; i < 12; i++)
19ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
20InBlock.gif                Game[i, 0= -1;
21InBlock.gif                Game[i, 11= -1;
22InBlock.gif                Game[0, i] = -1;
23InBlock.gif                Game[11, i] = -1;
24InBlock.gif                Game[i, 1= -1;
25InBlock.gif                Game[i, 10= -1;
26InBlock.gif                Game[1, i] = -1;
27InBlock.gif                Game[10, i] = -1;
28ExpandedSubBlockEnd.gif            }
29InBlock.gif            step=0;
30InBlock.gif            csPoint[step].x=2;
31InBlock.gif            csPoint[step].y=2;
32InBlock.gif            Game[csPoint[step].x, csPoint[step].y] = 1;
33ExpandedSubBlockEnd.gif        }
34InBlock.gif
35InBlock.gif        public void OutputResult()
36ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
37InBlock.gif            ResultCount++;
38InBlock.gif            Console.WriteLine("Result:{0}", ResultCount);
39InBlock.gif            for (int i = 2; i < 10; i++)
40ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
41InBlock.gif                for (int j = 2; j < 10; j++)
42ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
43InBlock.gif                    Console.Write("{0}{1} ", (Game[i, j] < 10)?" ":"", Game[i, j].ToString());
44ExpandedSubBlockEnd.gif                }
45InBlock.gif
46InBlock.gif                Console.WriteLine();
47ExpandedSubBlockEnd.gif            }
48InBlock.gif            Console.WriteLine();
49ExpandedSubBlockEnd.gif        }
50InBlock.gif
51InBlock.gif        public void Start()
52ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
53InBlock.gif            int NextX, NextY;
54InBlock.gif            for (int i = 0; i < 8; i++)
55ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
56InBlock.gif                NextX = csPoint[step].x + DeltaX[i];
57InBlock.gif                NextY = csPoint[step].y + DeltaY[i];
58InBlock.gif                if (Game[NextX, NextY] == 0)
59ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
60InBlock.gif                    Game[NextX, NextY] = ++step + 1;
61InBlock.gif                    csPoint[step].x = NextX;
62InBlock.gif                    csPoint[step].y = NextY;
63InBlock.gif                    if (step == 63)
64ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
65InBlock.gif                        OutputResult();
66ExpandedSubBlockEnd.gif                    }
67InBlock.gif
68InBlock.gif                    Start();
69ExpandedSubBlockEnd.gif                }
70ExpandedSubBlockEnd.gif            }
71InBlock.gif
72InBlock.gif            Game[csPoint[step].x,csPoint[step].y] = 0;
73InBlock.gif            --step;
74ExpandedSubBlockEnd.gif        }
75InBlock.gif
76ExpandedBlockEnd.gif    }
77
None.gif

转载于:https://www.cnblogs.com/dotLive/archive/2006/03/09/346069.html

你可能感兴趣的文章
稳扎稳打Silverlight(12) - 2.0外观之样式, 模板, 视觉状态和视觉状态管理器
查看>>
Linux技巧汇总
查看>>
Linux下多播编程<一>【十全十美】
查看>>
怎样给RCP程序添加依赖的JAR包
查看>>
嵌入式应用MPU前景看好
查看>>
动态路由协议
查看>>
Windows Server 2008 R2 之二十八AD RMS故障排除
查看>>
发现“郝茵晴”:屌丝们的社会性传播实验
查看>>
反转单链表的几种方法
查看>>
RHCE 学习笔记(24) - LVM 逻辑卷
查看>>
WordPress优化:为网站添加个性化缩略图标
查看>>
shell脚本分析IP归属地
查看>>
网络安全系列之十 万能密码登录网站后台
查看>>
CITRIX XenAPP/TS打印管理ThinPrint.
查看>>
杨辉三角绘图C语言
查看>>
SQL Server以Online模式创建索引
查看>>
微软开放 .NET 框架源代码
查看>>
Win2008 R2 VDI动手实验系列之五:配置远程桌面Web访问
查看>>
Jira迁移及内存调整
查看>>
Exchange Server 2010 SP2 新功能简述
查看>>