<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Сравнение алгоритмов сортировки массива
Исходник: ShakerSort.cpp :: Реализация класса Шейкер-сортировки [C++, code #40, hits: 7138, рейтинг: 3/7,4.88(1934)] +
автор: this [добавлен: 18.02.2006] управление:
  1. #include "ShakerSort.h"
  2.  
  3. ShakerSort::ShakerSort(int n, int* x) : Sort(n, x) {
  4. this->algName = "Sheiker Sort";
  5. }
  6.  
  7. void ShakerSort::Run(void)
  8. {
  9. int last = this->n - 1;
  10. int left = 1, right = this->n - 1;
  11.  
  12. /* основной цикл до тех пор пока границы
  13. отсортированных с разных сторон отрезков
  14. не пересекутся */
  15. do {
  16. /* проход снизу вверх */
  17. for (int j = right; j > 0; j--) {
  18. if (this->x[j-1] > this->x[j]) {
  19. this->Swap(j-1, j);
  20. last = j;
  21. }
  22. }
  23.  
  24. /* Корректируем нижнюю границу
  25. до которой уже все элементы получились
  26. отсортироваными */
  27. left = last + 1;
  28.  
  29. /* проход сверху вниз */
  30. for (int j = 1; j <= right; j++) {
  31. if (this->x[j-1] > this->x[j]) {
  32. this->Swap(j-1, j);
  33. last = j;
  34. }
  35. }
  36.  
  37. /* Корректируем верхнюю границу
  38. после которой уже все элементы получились
  39. отсортироваными */
  40. right = last - 1;
  41. } while (left < right);
  42. }
  43.  
  44. ShakerSort::~ShakerSort(void)
  45. {
  46. }
  47.  
ShakerSort.cpp :: Реализация класса Шейкер-сортировки

Заголовочный файл: ShakerSort.h
Функция-аналог: тут

+добавить реализацию
 
каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2000-2018 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.005403 секунд
Количество запросов к БД: 9, gzip: 3.4kb/12.4kb(73%)