сделать 2 блок схемы для программ

Выполнен
Заказ
5406962
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
10 Мая 2023 в 21:55
Цена
200 ₽
Блокировка
10 дней
Размещен
9 Мая 2023 в 16:39
Просмотров
42
Описание работы

сортировка Stooge

void stoogesort(int arr[], int l, int h, int& cmp, int& swaps) {

  if (l >= h)

    return;


  bool sorted = true;

  for (int i = l + 1; i <= h; i++) {

    if (arr[i] < arr[i - 1]) {

      sorted = false;

      break;

    }

  }

  if (sorted)

    return;


  if (arr[l] > arr[h]) {

    swap(arr[l], arr[h]);

    cmp++;

    swaps++;

  }

  

  if (h - l + 1 > 2) {

    int t = (h - l + 1) / 3;

    

    stoogesort(arr, l, h - t, cmp, swaps);

    

    stoogesort(arr, l + t, h, cmp, swaps);

     

    stoogesort(arr, l, h - t, cmp, swaps);

  }

  else if (arr[l] > arr[h]) {

    swap(arr[l], arr[h]);

    swaps++;

  }

}

Сортировка слиянием

void merge(int arr[], int l, int m, int r, int& cmp, int& swap)

{

  int n1 = m - l + 1;

  int n2 = r - m;

  int* L = new int[n1];

  int* R = new int[n2];

  for (int i = 0; i < n1; i++)

    L[i] = arr[l + i];

  for (int j = 0; j < n2; j++)

    R[j] = arr[m + 1 + j];

  int i = 0;

  int j = 0;

  int k = l;

  while (i < n1 && j < n2) {

    cmp++; // инкрементирование счетчика сравнений

    if (L[i] <= R[j]) {

      arr[k] = L[i];

      i++;

    }

    else {

      arr[k] = R[j];

      j++;

      swap++; // увеличение счетчика обменов

    }

    k++;

  }

  while (i < n1) {

    arr[k] = L[i];

    i++;

    k++;

  }

  while (j < n2) {

    arr[k] = R[j];

    j++;

    k++;

  }

  delete[] L;

  delete[] R;

}


void mergeSort(int arr[], int l, int r, int& cmp, int& swap)

{

  if (l >= r) {

    return;

  }

  int m = l + (r - l) / 2;

  mergeSort(arr, l, m, cmp, swap);

  mergeSort(arr, m + 1, r, cmp, swap);

  merge(arr, l, m, r, cmp, swap);

}

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.54
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
15 часов 41 минута
Выполнен в срок
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир