Задача: Простая быстрая сортировка
Псевдокод: первая версия быстрой сортировки(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)