задача 2 урок 23

Задача 2 урок 23

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

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

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

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

Решите:

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

Решение:

program task_2_lesson23;
var a: array[1..10] of integer;
    i, j: integer;
begin
  //[0, 3, 2, 1, 0, 2, 2, 4, 0, -5]
  a[1] := 0;
  a[2] := 3;
  a[3] := 2;
  a[4] := 1;
  a[5] := 0;
  a[6] := 2;
  a[7] := 2;
  a[8] := 4;
  a[9] := 0;
  a[10] := -5;
  for i := 1 to 9 do
    if a[i] = 0 then
    begin
      for j := i + 1 to 10 do
      begin
        a[j-1] := a[j];
        a[j] := 0;
      end;
    end;
  for i:=1 to 10 do
    write(a[i], ' ');
  readln
end. 

Косоль:

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