Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Метод прямого вибору



При сортуванні цим методом фіксується перший лівий елемент масиву й проглядається права частина масиву (N-1) елементів. Шукається найменший елемент праворуч. Якщо знайдений елемент менше першого, він переставляється з першим елементом. Далі фіксується другий елемент масиву й проглядаються (N-2) елементів праворуч. Розшукується найменший елемент і переставляється з елементом 2. Подібна процедура триває доти, поки не залишиться найбільший елемент.

Наведемо приклад функції selectSort, що здійснює сортування масиву методом прямого вибору: У списку аргументів є: покажчик на масив *a; розмір масиву num; посилання на змінну &mov, що враховує число пересилань..

void selectSort(int *a, int num, int &mov){

for (int i=0; i<num-1; i++){ //Задати лівий ел-т

int min = i; //Змінна для індексу мінімального ел-та

for (int j=i+1; j<num; j++) //Задати правий ел-т

if (a[j]<a[min]) min=j; //Порівняти із мінімальним

if (min!=i){ //Якщо знайдено ел-т, що менше лівого

swap(a[min],a[i]); //Переставити лівий і мінімальний

mov+=3;

display(a, num); //Вивести на екран перестановку };

}

}

Приклад сортування масиву методом вибору (білим кольором показані елементи, які не змінюються при ітерації, сірим кольором – елементи, що міняються місцями):

Вихідний масив          
1-я ітерація          
2-я ітерація          
3-я ітерація          
4-я ітерація          




Дата публикования: 2015-04-07; Прочитано: 645 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...