Урок 21.Задача №2 Перенести все нули в конец массива

Задача №2 урок 21

Есть массив (пусть не более 10 элементов):

[0, 3, 2, 1, 0, 3, 2, 4, 0, -5]

Задача: перенести все нули в конец, так чтобы в итоге получилось:

[3, 2, 1, 3, 2, 4, -5, 0, 0, 0]
program array_zero;
  var  len,i,j,k : integer;
  arrInt : array [1..7] of integer;

begin
  len := high(arrInt);
  i := 1;
  randomize;
  // заполнение массива
  for k:=1 to high(arrInt) do
       arrInt[k] := random(5);
  // вывод массива
  for k:=1 to high(arrInt) do
       write(arrInt[k], ' ');
  while(i < len) do
  begin
    if(arrInt[i] = 0) then
    begin
       for j:=i to len do
       begin
           arrInt[j] := arrInt[j+1];
       end;
       arrInt[len] := 0;
       len -= 1;
    end
    else
        i += 1;
  end;
  // вывод результата
  writeln();
  for k:=1 to high(arrInt) do
  begin
      write(arrInt[k],' ');
  end;
  readln();
end.
vedro-compota's picture

решение работает, теперь решите за сложность менее 2N

_____________
матфак вгу и остальная классика =)