[branch] Алгоритм A-star (А*), оптимизация - C#
Формулировка задачи:
Данная тема является ответвлением темы: Алгоритм A-star (А*), оптимизация
x5reunion
, Кстати, Вместоpublic Point TileCoordinates { get; set; }
public Point TileCoordinates;
Решение задачи: «[branch] Алгоритм A-star (А*), оптимизация»
textual
Листинг программы
using System; using System.Diagnostics; namespace ConsoleApplication161 { class Program { static void Main(string[] args) { const int N = 100, M = 100000, K = 100; var a = new Foo {A = 10, B = 10}; unchecked { int trash = 0; Stopwatch sw1 = new Stopwatch(), sw2 = new Stopwatch(); for (int i = 0; i < N; i++) { if (i % 2 == 0) { for (int j = 0; j < M; j++) { sw1.Start(); for (int k = 0; k < K; k++) { a.A = j + k; } sw1.Stop(); sw2.Start(); for (int k = 0; k < K; k++) { a.B = j + k; } sw2.Stop(); trash += a.A + a.B; } } else { for (int j = 0; j < M; j++) { sw2.Start(); for (int k = 0; k < K; k++) { a.B = j + k; } sw2.Stop(); sw1.Start(); for (int k = 0; k < K; k++) { a.A = j + k; } sw1.Stop(); trash += a.A + a.B; } } } Console.WriteLine(trash); Console.WriteLine("Время доступа к свойству = {0}", sw1.Elapsed); Console.WriteLine("Время доступа к полю = {0}", sw2.Elapsed); Console.WriteLine("Разница между ними составляет {0:P} в пользу {1}", Math.Abs(1 - sw1.ElapsedTicks / (double)sw2.ElapsedTicks), sw1.Elapsed < sw2.Elapsed ? "Свойства" : "Поля"); } } } struct Foo { public int A { get; set; } public int B; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д