Показать сообщение отдельно
  #9  
Старый 30.12.2009, 08:44
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата:
Сообщение от Asinkrit
Пришло на ум, одно из решений) отсортировать оба массива, а потом пробежаться в одном цикле по обоим массивам, до конца(истина) или до первого несовпадения(ложь)...
А я сразу не сообразил. Только не так, а как сказано в задании - пытаемся перестроить ( отсортировать ) А под В
PHP код:
function TForm1.Compare2Mass2(AB: array of Integer): Boolean;
var
  
intmplenA Integer;
  
netABoolean;
begin
  Result 
:= false;
  
lenA := Length(A);
  if 
lenA <> Length(Bthen
    
Exit;  // если длины не совпадают то не получится

  
for := 0 to LenA do // перестроим А как В
    
if B[i] <> A[ithen
    begin 
// очередной несовпадает
      
netA := true;
      
// ищем в оставшихся
      
for := 1 to LenA do
        if 
B[i] = A[nthen
        begin  
// если нашли переставляем
          
tmp := A[i];
          
A[i] := A[n];
          
A[n] := tmp;
          
netA := false;
          break;
        
end;
      if 
netA then // если не нашли значит нельзя
        
Exit;
    
end;
  
// если еще не вышли значит все элементы переставлены
  
Result := true;
end
Ответить с цитированием