Оптимизировать код - C# (183068)

Узнай цену своей работы

Формулировка задачи:

Написал программу, которая считывает данные из файла(вещественные числа), записывает данные в массив, находит минимальное, среднее и максимальное число и выводит в файл их порядковый номер. Как оптимизировать программу, чтобы время выполнения не выходило за рамки в 2 секунды? Код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Globalization;
  8. namespace ConsoleApplication1
  9. {
  10. class Program
  11. {
  12. static void Main()
  13. {
  14. string text = File.ReadAllText(@"in");
  15. string[] numberStrings = text.Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries);
  16. short valuesCount = short.Parse(numberStrings[0]); // <<< количество элементов в массиве
  17. float[] values = new float[valuesCount]; // <<< создание массива длиной valuesCount
  18. for (short index = 0; index < valuesCount; ++index)
  19. {
  20. values[index] = float.Parse(numberStrings[index + 1], CultureInfo.InvariantCulture.NumberFormat); // <<< заполнение массива
  21. }
  22.  
  23. using (StreamWriter sw = new StreamWriter(@"out"))
  24. {
  25. int min = 0;
  26. int max = 0;
  27. int average = 0;
  28. float[] massive = new float[valuesCount];
  29. for (short c = 0; c < values.Length; c++)
  30. {
  31. for (short i = 0; i < values.Length; i++) // <<< нахождение среднего числа
  32. {
  33. massive[i] = Math.Abs(values.Average() - values[i]);
  34. }
  35. for (short i = 0; i < massive.Length; i++)
  36. {
  37. if (massive[i] == massive.Min()) average = i + 1;
  38. }
  39.  
  40. if (values[c] == values.Min()) // индекс минимального
  41. {
  42. min = c + 1;
  43. }
  44. if (values[c] == values.Max()) // индекс максимального
  45. {
  46. max = c + 1;
  47. }
  48. }
  49. sw.Write("{0} {1} {2}", min, average, max); // вывод
  50. }
  51. }
  52. }
  53. }

Решение задачи: «Оптимизировать код»

textual
Листинг программы
  1. for (short c = 0; c < values.Length; c++)
  2. * * * * * * * * {
  3. * * * * * * * * * * for (short i = 0; i < values.Length; i++) // <<< нахождение среднего числа
  4. * * * * * * * * * * * * {
  5. * * * * * * * * * * * * * * massive[i] = Math.Abs(values.Average() - values[i]);
  6. * * * * * * * * * * * * }
  7. * * * * * * * * * * for (short i = 0; i < massive.Length; i++)
  8. * * * * * * * * * * {
  9. * * * * * * * * * * * * if (massive[i] == massive.Min()) average = i + 1;
  10. * * * * * * * * * * }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.533 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут