Министерство по развитию информациооных технологий и коммуниникации республики узбекистан


Download 90.33 Kb.
bet3/4
Sana02.06.2024
Hajmi90.33 Kb.
#1838808
TuriЛитература
1   2   3   4
Bog'liq
СДИА 1 работа

Особенность алгоритма
Главное преимущество сортировки слиянием — она работает всегда с одной и той же скоростью на любых массивах. Допустим, у нас есть два массива:

  1. В одном будут числа в случайном порядке.

  2. В другом — уже отсортированные числа, но последний и предпоследний элементы (разные) просто поменяны местами.

В обоих случаях сортировка слиянием покажет одно и то же время: ей всё равно, какие данные обрабатывать, алгоритм всё равно сделает это за один проход и одинаковое время. Благодаря этому свойству алгоритм используют там, где нужно обработать данные за заранее известное время. Например, если для сортировки 1000 элементов серверу требуется 50 миллисекунд, то можно настроить ему отправку новой партии данных каждую 51 миллисекунду — так мы будем уверены, что к моменту отправки новых данных старые уже будут обработаны.

#include
#include
#include


#define N 15


// Объединяем два отсортированных подмассива `arr[low…mid]` и `arr[mid+1…high]`
void Merge(int arr[], int aux[], int low, int mid, int high)
{
int k = low, i = low, j = mid + 1;


// пока есть элементы в левом и правом рядах
while (i <= mid && j <= high)
{
if (arr[i] <= arr[j]) {
aux[k++] = arr[i++];
}
else {
aux[k++] = arr[j++];
}
}


// копируем оставшиеся элементы
while (i <= mid) {
aux[k++] = arr[i++];
}


// Вторую половину копировать не нужно (поскольку остальные элементы
// уже находятся на своем правильном месте во вспомогательном массиве)


// копируем обратно в исходный массив, чтобы отразить порядок сортировки

Download 90.33 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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