Задача 2 Урок 21

Задача 2 Урок 21:

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

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

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

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

Решите:

  1. Любым способом
  2. Решите со сложностью не более чем 2N

Примечание: давалась как простая разминочная задачка для собеседования в Яндекс.

var i, x: integer;
 const a: array [1..10] of integer = (0, 3, 2, 1, 0, 3, 2, 4, 0, -5);
begin
  for i := 1 to 10 do write(a[i], ' ');
  writeln();
  for i := 1 to 10 do
   if a[i] = 0 then x += 1
   else
    begin
     if x > 0 then
      begin
       a[i - x] := a[i];
       a[i] := 0;
      end;
    end;
  for i := 1 to 10 do write(a[i], ' ');
  writeln();
  readln();
end.