Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Навроцкий, А. А. Основы_алгоритм_Программир_в_среде_VISUAL C++_Лаб_практикум_1_2_курсы_заоч.pdf
Скачиваний:
126
Добавлен:
16.03.2016
Размер:
1.06 Mб
Скачать

Лабораторная работа №10 СОРТИРОВКА ПО КЛЮЧУ ОДНОМЕРНЫХ

МАССИВОВ СТРУКТУР

10.1. Сортировка массивов

Сортировка упорядочивание элементов массива по возрастанию или по убыванию.

10.1.1. Метод пузырька

Р

 

Последовательно сравниваются рядом стоящие элементы массива и, если

 

И

условие упорядоченности не выполняется, то эти элементы переставляются. За

один цикл в необходимую позицию перемещается один элемент массива и из дальнейшего рассмотрения исключается.

void S_Puz(int a[], int n)

 

 

// Сортировка по возрастанию

{ int i , j, t;

 

 

 

Г

 

 

 

Б

У

 

for(i=1; i < n; i++)

 

 

 

 

for( j=n-1; j >= i; j--)

 

 

// Перебор элементов

 

if (a[j-1] > a[j])

 

 

а

 

 

}

 

 

 

}

{ t = a[j-1];

к

// Перестановка элементов

 

a[j-1] = a[j];

 

 

 

 

a[j] = t;

 

 

 

 

 

 

е

 

 

 

 

ти

 

 

 

 

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

 

 

 

 

 

 

о

 

 

 

 

 

В массиве выбирается минимальный элемент, помещается в первую пози-

цию и из рассмотрения исключае ся. Затем аналогичным образом перемещают- ся элементы в оставшейся час массива. Процесс повторяется до тех пор, пока все элементы не будут перемещены в необходимые позиции.

 

void S Vb(int a[], int n)

 

 

 

и

 

 

{ int imin, i, j, t;

 

 

forл(i = 0; i < n-1; i++)

// Перебор элементов

 

{

 

 

 

б

 

 

 

imin = i;

 

и for (j = i+1; j < n; j++)

// Поиск минимального элемента

Б

 

if (a[imin] > a[j])

 

 

imin = j;

 

if (imin != i) { // Перемещение минимального элемента

 

 

t = a[imin]; a[imin] = a[i];

a[i] = t;

}

}

}

43