Program.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. namespace ConsoleApp4
  2. {
  3. internal class Program
  4. {
  5. static void DijkstrasAlgorithm(int[,] massiv, int[] massivOfPoints)
  6. {
  7. Console.WriteLine("Введите начальный пункт: ");
  8. int pointFirst = Convert.ToInt32(Console.ReadLine())-1;
  9. int[] minimums = new int[massiv.GetLength(0)];
  10. int min = int.MaxValue;
  11. for (int i = 0; i < massiv.GetLength(0); i++)
  12. {
  13. for (int j = 0; j < massiv.GetLength(1); j++)
  14. {
  15. if (j==pointFirst )
  16. {
  17. continue;
  18. }
  19. else if (i == pointFirst && massivOfPoints[i] > massiv[i, j])
  20. {
  21. massivOfPoints[j] = massiv[i, j];
  22. //&& i != pointFirst && j != pointFirst
  23. }
  24. else if (massivOfPoints[j] < int.MaxValue && massiv[i, j] < int.MaxValue)
  25. {
  26. if (massivOfPoints[j] + massiv[i, j] < massivOfPoints[j])
  27. {
  28. massivOfPoints[j] = massivOfPoints[j] + massiv[i, j];
  29. }
  30. }
  31. }
  32. }
  33. for (int i = 0; i < massivOfPoints.GetLength(0); i++)
  34. {
  35. Console.WriteLine("Оценка пункта "+(i+1)+" "+massivOfPoints[i]);
  36. }
  37. }
  38. static void Main(string[] args)
  39. {
  40. Console.WriteLine("Введите количество пунктов: ");
  41. int a = Convert.ToInt32(Console.ReadLine());
  42. int[,] matrix = new int[a, a];
  43. int[] matrixOfPoints = new int[a];
  44. for (int i = 0; i < matrix.GetLength(0); i++)
  45. {
  46. matrixOfPoints[i] = int.MaxValue;
  47. }
  48. for (int i = 0; i < matrix.GetLength(0); i++)
  49. {
  50. for (int j = 0; j < matrix.GetLength(1); j++)
  51. {
  52. if (i == j)
  53. {
  54. matrix[i, j] = int.MaxValue;
  55. }
  56. else
  57. {
  58. //Console.WriteLine("Введите расстояние между " + (i + 1) + " и " + (j + 1) + " пунктами (если пункты не связаны - введите 0)): ");
  59. matrix[i, j] = Convert.ToInt32(Console.ReadLine());
  60. if (matrix[i, j] == 0)
  61. {
  62. matrix[i, j] = int.MaxValue;
  63. }
  64. }
  65. }
  66. }
  67. DijkstrasAlgorithm(matrix, matrixOfPoints);
  68. }
  69. }
  70. }