Первый список действительно является сортировкой выбора.По сути, это тот же алгоритм, который вы указали по ссылке.Но вместо того, чтобы найти элемент, который имеет минимальное значение, и поменять его местами с arr[i]
один раз после цикла j
, первый код немедленно заменяет arr[i]
на любое значение, которое встречается, которое меньше.
В обоих случаях в конце цикла i
, arr[i]
будет содержать наименьший элемент в пределах диапазона i+1..SIZE
.
Между этими двумя алгоритмами есть два различия: код, который вы показываетездесь выполняется более одного обмена на каждую итерацию, и он перетасовывает данные, которые еще не отсортированы (это не очень важно, поскольку они в конечном итоге будут отсортированы).Таким образом, в основном он менее эффективен, чем код, который вы связали.