Сортировка выбором
Сортировка выбором имеет квадратичную сложность O(n2) и, как и предыдущий метод пузырька, эффективен лишь на небольших объемах данных.
Алгоритм находит номер минимального значения в текущем спис- ке, меняет этот элемент со значением первой неотсортированной пози- ции (если минимальный элемент не находится на данной позиции), а за- тем сортирует хвост списка, исключив из рассмотрения уже отсортиро- ванные элементы:
// Сортировка выбором
void SelectionSort(ref int[] Array)
{
// Перебираем все элементы массива (безпоследнего)
// i – позиция первого неотсортированного элемента for (int i = 0; i < Array.Length – 1; i++)
{
// Позиция минимального элемента справа от i int min = i;
// Перебираем все элементы справа от i
for (int j = i + 1; j < Array.Length; j++)
// Меньше ли очередной элемент минимального? if (Array[j] < Array[min])
// Да – теперь это минимальный элемент min = j;
// Минимальный элемент не первый?
// Меняем местами! if (min != i)
{
int t = Array[i]; Array[i] = Array[min]; Array[min] = t;
}
}
}
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.