Блог пользователя dronoff

Автор dronoff, 14 лет назад, По-русски
Подскажите пожалуйста...нужно отсортировать 2 массив по двум ключам)но при написание Qsort - а сравнить два ключа он не захотел...нужно отсортировать по ключу Х, и при равенстве первее в массиве ставится тот у которого ключ У больше)Подскажите в чем ошибка)
function comp(i, j : integer): boolean;
begin
  comp := false;
  if (x[i] < x[j]) then
    comp := true else
      if (x[i] = x[j]) and (y[i] > y[j]) then
        comp := true;
end;
procedure qsort(l, r : longint);
var
  m, t, i, j : int;
begin
   i := l; j := r;
   m := random(r - l + 1) + l;
   repeat
      while comp(i, m) do inc(i);
      while comp(m, j) do dec(j);
      if i <= j then begin
         swap(x[i], x[j]);
 swap(y[i], y[j]);inc(i);dec(j);
      end;
   until i > j;
   if i < r then qsort(i, r);
   if l < j then qsort(l, j);
end;

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится