博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
关于在阵列上安装系统时提示无法复制文件问题
查看>>
Socket API回顾
查看>>
xdebug
查看>>
开通博客
查看>>
cvBlob 使用
查看>>
渲染多边形和填充多边形
查看>>
灰度化和二值化处理车辆检测
查看>>
datatable里的缓存参数stateSave
查看>>
C#学习常用类(11000)---Application类
查看>>
centos7.0 下ftp服务器搭建
查看>>
Objective-c的@property 详解 2
查看>>
如何在Solr中更好的处理同义词
查看>>
冒泡法排序
查看>>
服务端缓存技术总结
查看>>
XtraBackup物理备份 阿里云的Mysql备份方案
查看>>
Redhat安装icinga2
查看>>
docker的user namespace功能
查看>>
为docker容器开启ssh访问
查看>>
通过注解模式 装载Bean 和 Spring Boot一些注解
查看>>
DOM解析器
查看>>