Алгоритмы сортировки


Download 60.95 Kb.
bet3/7
Sana19.08.2023
Hajmi60.95 Kb.
#1668327
TuriРеферат
1   2   3   4   5   6   7
Bog'liq
Алгоритмы сортировки - StudentLib

Сортировка выбором


Идея сортировки этого алгоритма состоит в том, что отсортированная последовательность формируется путем добавления к ней элементов в правильном порядке.


Алгоритм основан на выборе наименьшего элемента из неотсортированной части и его переноса в конец отсортированной. Сначала программа пробегает по массиву, выбирая наименьший элемент. Как только такой найден, он переносится на первое место в массиве, а элемент стоящий там, съезжает на свободное место. С этого момента, первый элемент, он же наименьший, будет началом отсортированной части массива. Вторым шагом, мы ищем наименьший элемент среди неотсортированной части и, найдя его, ставим его в конец отсортированной части. И так продолжаем циклически, пока весь массив не окажется отсортированным.
Для нахождения наименьшего элемента из массива рассматриваемых алгоритм совершает n сравнений. Тогда, как число обменов всегда будет меньше числа сравнений. То есть время, затраченное на сортировку, растет квадратично, относительно количества элементов.
Алгоритм сортировки выбором не использует дополнительной памяти, то есть все операции происходят "на месте", без дополнительных массивов.
Этот метод нельзя назвать устойчивым, так как при сортировке последовательности, состоящей из 3 элементов, которые имеют по 2 поля, например: 1-a, 2-a, 2-b, алгоритм отсортирует последовательность в порядке: 1-a, 2-b, 2-a, что в данной ситуации является неверным.


Сортировка выбором в блок-схеме


k - указатель на неотсортированную часть. k=0


Код сортировки выбором на языке С++.

Листинг 3. сhооsе. срр


#inсludе
#inсludе <сtimе>
using namеsрaсе std;
vоid main ()
{еtlосalе (LС_ALL,"rus");mss [12] ={0}, min=0;оr (int i=0; i<12; i++)
{[i] =rand () %100;
}оr (int t=0; t<12; t++)
{
соut<соut<<". ";
}
соut<<"\n\n\n";оr (int i=0; i<12; i++)
{=mss [i];оr (int j=i+1; j<12; j++)
{(mss [j] {=mss [j];[j] =mss [i];
}[i] =min;
}
}
fоr (int с=0; с<12; с++)
{
соut<соut<<". ";
}
systеm ("рausе");
}



Download 60.95 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling