Сортировка выбором - C# (182330)

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

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

Дана последовательность чисел a1, a2 , ..., an. Требуется расположить элементы по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый – на место наибольшего. Написать алгоритм сортировки выбором.

Решение задачи: «Сортировка выбором»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Sort
  7. {
  8.     class Program
  9.     {
  10.         static void Main()
  11.         {
  12.             // Считываем размер массива,
  13.             // который необходимо отсортировать
  14.             int size;
  15.             size = Convert.ToInt32(Console.ReadLine());
  16.             // Динамически выделяем память под
  17.             // хранение массива размера size
  18.             int[] a = new int [size];
  19.             //считываем строку
  20.             string str = Console.ReadLine();
  21.             //разбиваем по пробелам
  22.             string[] mas = str.Split(' ');
  23.             //парсим в массив
  24.             for (int i = 0; i < size; i++)
  25.             {
  26.                 a[i] = int.Parse(mas[i]);
  27.             }
  28.  
  29.             int temp;
  30.             for (int i = 0; i < size; i++)
  31.             {
  32.                 // Найдем минимальный элемент на
  33.                 // промежутке индексов [i; size);
  34.                 // изначально его индекс равен i
  35.                 int minValueIndex = i;
  36.  
  37.                 // Переберем оставшиеся элементы промежутка
  38.                 for (int j = i + 1; j < size; j++)
  39.                 {
  40.                     // Если элемент в позиции j меньше
  41.                     // элемента в позиции minValueIndex, то
  42.                     // необходимо обновить значение индекса
  43.                     if (a[j] < a[minValueIndex])
  44.                     {
  45.                         minValueIndex = j;
  46.                     }
  47.                 }
  48.  
  49.                 // Меняем текущий элемент с минимальным
  50.                 temp = a[i];
  51.                 a[i] = a[minValueIndex];
  52.                 a[minValueIndex] = temp;
  53.             }
  54.  
  55.             // Выводим отсортированный массив
  56.             for (int i = 0; i < size; i++)
  57.             {
  58.                 Console.Write(a[i]);
  59.                 Console.Write(' ');
  60.             }
  61.         }
  62.     }
  63. }

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


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

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

10   голосов , оценка 3.7 из 5

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

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

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