Этот метод обычно применяется для массивов, не содержащих повторяющихся элементов.
Можно действовать следующим образом:
- выбрать минимальный элемент массива;
- поменять местами с первым элементом (после этого самый маленький будет стоять на своем месте);
- повторить предыдущие пункты с оставшимися элементами, т.е. рассмотреть часть массива от второго до последнего, найти минимальный в нем элемент и поменять его со вторым и т.д. пока не останется один самый большой элемент, уже стоящий на своем месте.
Всего потребуется m - 1 раз выполнить эту последовательность действий. В ходе сортировки будет увеличиваться отсортированная часть массива, а не отсортированная, соответственно, уменьшаться.
Function МетодПрямВыбора (ByRef y( ) As Integer, ByVal m As Byte)
Dim Mn As Integer
Dim k As Byte, j As Byte, L As Byte
For k = 1 To m - 1
Mn = y(k): L = k
For j = k + 1 To m
If y(j) < Mn Then Mn = y(j): L = j
Next j
y(L) = y(k) : y(k) = Mn
Next k
End Function
Если в проверяемом условии знак “<” заменить на “>” , то массив будет отсортирован по убыванию.