Сортировка выбором - C# (182330)
Формулировка задачи:
Дана последовательность чисел a1, a2 , ..., an. Требуется расположить элементы по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый – на место наибольшего. Написать алгоритм сортировки выбором.
Решение задачи: «Сортировка выбором»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sort
{
class Program
{
static void Main()
{
// Считываем размер массива,
// который необходимо отсортировать
int size;
size = Convert.ToInt32(Console.ReadLine());
// Динамически выделяем память под
// хранение массива размера size
int[] a = new int [size];
//считываем строку
string str = Console.ReadLine();
//разбиваем по пробелам
string[] mas = str.Split(' ');
//парсим в массив
for (int i = 0; i < size; i++)
{
a[i] = int.Parse(mas[i]);
}
int temp;
for (int i = 0; i < size; i++)
{
// Найдем минимальный элемент на
// промежутке индексов [i; size);
// изначально его индекс равен i
int minValueIndex = i;
// Переберем оставшиеся элементы промежутка
for (int j = i + 1; j < size; j++)
{
// Если элемент в позиции j меньше
// элемента в позиции minValueIndex, то
// необходимо обновить значение индекса
if (a[j] < a[minValueIndex])
{
minValueIndex = j;
}
}
// Меняем текущий элемент с минимальным
temp = a[i];
a[i] = a[minValueIndex];
a[minValueIndex] = temp;
}
// Выводим отсортированный массив
for (int i = 0; i < size; i++)
{
Console.Write(a[i]);
Console.Write(' ');
}
}
}
}