кодесурса
«C ++

Алгоритм сортировки коктейлей C ++ Упражнение: сортировка массива элементов с использованием алгоритма сортировки коктейлей

script1adsense2code
script1adsense3code

С ++ Сортировка: упражнение 5 с решением

Напишите программу на C ++ для сортировки массива элементов с использованием алгоритма сортировки Cocktail.

Пример решения :

Код C ++:

 //Ref: https://bit.ly/2rcvXK5
#include <algorithm>
#include <iostream>
#include <iterator>
 
template <typename RandomAccessIterator>
void cocktail_sort(RandomAccessIterator begin, RandomAccessIterator end) {
  bool swapped = true;
  while (begin != end-- && swapped) {
    swapped = false;
    for (auto i = begin; i != end; ++i) {
      if (*(i + 1) < *i) {
        std::iter_swap(i, i + 1);
        swapped = true;
      }
    }
    if (!swapped) {
      break;
    }
    swapped = false;
    for (auto i = end - 1; i != begin; --i) {
      if (*i < *(i - 1)) {
        std::iter_swap(i, i - 1);
        swapped = true;
      }
    }
    ++begin;
  }
}
 
int main() {
  int a[] = {100, 2, 56, 200, -52, 3, 99, 33, 177, -199};
  cocktail_sort(std::begin(a), std::end(a));
  copy(std::begin(a), std::end(a), std::ostream_iterator<int>(std::cout, " "));
  std::cout << "\n";
}

Пример вывода:

 Оригинальные номера:
100, 2, 56, 200, -52, 3, 99, 33, 177, -199
Сортированные номера:
-199 -52 2 3 33 56 99 100 177 200 

Блок - схема:

«Блок-схема:

Редактор кода C ++:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на C ++ для сортировки массива элементов, используя алгоритм сортировки Bubble.
Далее: Напишите программу на C ++ для сортировки массива элементов с использованием алгоритма сортировки Counting.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code