Фрагмент реализации процедуры быстрой сортировки строк на Паскале:
...
type
  DataItem = string[20];
  DataArray = array [1..20000] of DataItem;
...
procedure QsString(var item: DataArray; count:integer);
  procedure qs(l, r: integer; var it:DataArray);
    var
    i, j: integer;
    x, y: DataItem;
  begin
    i := l; j := r;
    x := it[(l+r) div 2];
    repeat
      while it[i] < x do i := i+1;
      while x < it[j] do j := j-1;
      if i<=j then
      begin
        y := it[i];
        it[i] := it[j];
        it[j] := y;
        i := i+1; j := j-1;
      end;
    until i>j;
    if l<j then qs(l, j, it);
    if l<r then qs(i, r, it);
  end;
begin
  qs(1, count, item);
end;
...
Проверено на задачах сайтов: http://acm.lviv.ua и http://acm.timus.ru   
Осталось изменить под конкретную задачу размер строки и размер массива  :boast: