Вы здесь

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

Исходный код на C++: 

Теория

Сортировка выбором предполагает при каждом просмотре массива поиск минимального элемента. Минимальный элемент переноситься в начало массива, а элемент, стоявший в начале массива, переносим на место минимального (меняем их местами). Таким образом, основная идея сортировки выбором просмотр не отсортированной части массива, выбор минимального элемента и добавить его в конец отсортированной части массива. Приведём пример. Дан входной массив чисел: -55,12,-123,35,90,45,-15,43. На первом шаге сортировки выбором просматриваем входную последовательность и находим позицию минимального элемента. Минимальный элемент равен -123(позиция 2) меняем местами с -55(позиция 0).После первого шага сортировки получим (рис.1).

После первого шага работы алгоритма
Рис 1.Шаг 1.

На следующем шаге просмотр массива осуществляем со второго элемента, находим позицию минимального элемента. Минимальный элемент равен -55(позиция 2) меняем местами с 12(позиция 1). После второго шага сортировки получим (рис.2).

После второго шага работы алгоритма
Рис 2.Шаг 2.

Продолжая итерационный процесс, мы получим отсортированный массив. Трудоёмкость алгоритма- n*n/2.

Программная реализация

void sort_vibor(int count,double *mass)
{
int i,j,p;
double t;
for(i=0;i<count-1;i++)
{
for(j=i,p=i+1;j<count;j++)
if(mass[j]<mass[p])p=j;
t=mass[i]; mass[i]=mass[p] ;mass[p]=t;
}
}