<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Шейкер-сортировка
Псевдокод: Шейкер сортировка управление:
  1. left = 1
  2. right = n-1
  3.  
  4. last = n-1
  5.  
  6. /* основной цикл до тех пор пока границы
  7. отсортированных с разных сторон отрезков
  8. не пересекутся */
  9. while left < right
  10. /* проход снизу вверх */
  11. for j = right downto 1
  12. if x[j-1] > x[j]
  13. swap(x, j-1, j)
  14. last = j
  15.  
  16. /* Корректируем нижнюю границу
  17. до которой уже все элементы получились
  18. отсортироваными */
  19. left = last + 1
  20.  
  21. /* проход сверху вниз */
  22. for j = 1 to right
  23. if (x[j-1] > x[j] )
  24. swap(x, j-1, j)
  25. last = j
  26.  
  27. /* Корректируем верхнюю границу
  28. после которой уже все элементы получились
  29. отсортироваными */
  30. right = last - 1
  31.  

 
каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2000-2021 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.003164 секунд
Количество запросов к БД: 3, gzip: 2.6kb/8.5kb(70%)