<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Простая быстрая сортировка
Псевдокод: первая версия быстрой сортировки(qsort1) управление:
  1. void qsort(l, u)
  2. if l >= u
  3. return
  4. m = l
  5. for i = [l+1, u]
  6. /* инвариант:
  7. x[l+1..m] < x[l] && x[m+1..i-1] >= x[l] */
  8. if ( x[i] < x[l])
  9. swap(++m, i)
  10. swap(l, m) /* о чем писалось в примечании:
  11. если этого не сделать -
  12. попадаем в беск. цикл, если
  13. x[l] - максимальный элемент */
  14.  
  15. /* x[l..m-1] < x[m] <= x[m+1, u] */
  16. qsort(l, m-1)
  17. qsort(m+1, u)

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