Адаптировать сортировку одномерных массивов под двумерные

Рейтинг: 0Ответов: 2Опубликовано: 16.04.2011

Есть программа на Паскале, которая занимается сортировкой Шелла и вставками. Процедуры сортировки замечательные и вроде как адекватно работают (если не ошибаюсь), но только с одномерными массивами (в данном случае тип LittleDataArray). Нужно адаптировать их под работу с двумерными массивами (в данном случае тип LittleDataArray).

Вот алгоритмы:


...
    DataItem = char;
    LittleDataArray = array [1..80] of char;
    DataArray = array [1..80,1..80] of char;
...
procedure Shell(var item: LittleDataArray);
var
i, j, k: integer;
   h: DataItem;
 begin
 amnt_s:=0;
   k := t shr 1;
  while k > 0 do
   begin
     for i := 0 to t - k do
     begin
       j := i;
       while (j >= 0) and (item[j] > item[j + k]) do
       begin
         h := item[j];
         item[j] := item[j + k]; inc(amnt_s);
         item[j + k] := h; inc(amnt_s);
         if j > k then
           Dec(j, k)
         else
           j := 0;
       end;
    end;
    k := k shr 1;
  end;

end;

procedure Inser(var item: LittleDataArray); var i, l, j: integer; x: DataItem; begin amnt_i:=0; for i := 2 to t do begin x := item[i]; inc(amnt_i); j := i-1; while (x0) do begin item[j+1] := item[j]; inc(amnt_i); j := j-1; end; item[j+1] := x; inc(amnt_i); end; end; { end Inser sort }

Ответы

Ответов пока нет.