Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Сортировка вставками


Автор: Sergas 23.12.2008, 18:51
Ничего не понимаю ^^ 
Нужно отсортировать массив вставками справа налево по убыванию
Код

var a: array[1..100] of integer;
    i, j, n, b: integer;
begin
  n:=6;
  for i:=1 to n do
   read(a[i]);
  for i:=5 downto 1 do
    if a[i]<a[i+1]
    then
     begin
       b:=a[i];
       j:=i+1;
       repeat
         a[j-1]:=a[j];
         j:=j+1;
       until (j<6) or (a[j]<=b);
       a[j]:=b;
     end;
  for i:=1 to n do
   write(a[i]:5);
   writeln;
end.

Автор: volvo877 24.12.2008, 01:18
Цитата(Sergas @  23.12.2008,  17:51 Найти цитируемый пост)
Нужно отсортировать массив вставками справа налево по убыванию
Так что-ли?

Код
var
  a: array[1..100] of integer;
  i, j, n, b: integer;
begin
  n := 6;
  for i := 1 to n do read(a[i]);

  for i := n downto 1 do begin
    b := a[i];
    j := Succ(i);
    while (j <= n) and (b < a[j]) do begin
      a[pred(j)] := a[j]; inc(j);
    end;
    a[pred(j)] := b;
  end;

  for i := 1 to n do write(a[i]:5);
  writeln;
end.

Автор: Sergas 24.12.2008, 18:00
Спасибо, но эта прога нарушает сам алгоритм вставок, но вёравно спасибо за помощь.

Автор: volvo877 24.12.2008, 20:01
Цитата(Sergas @  24.12.2008,  17:00 Найти цитируемый пост)
эта прога нарушает сам алгоритм вставок

Да что ты говоришь? И чем же?

Автор: Sergas 25.12.2008, 15:15
тем, что алгоритм вставок выглядит подругому, 
хотя мне без разницы, 
но на меня наехали изза этого)

Автор: volvo877 25.12.2008, 16:21
Цитата(Sergas @  25.12.2008,  14:15 Найти цитируемый пост)
тем, что алгоритм вставок выглядит подругому, 

Алгоритм вставок выглядит именно так, ибо это он и есть (единственное, что изменено - это порядок прохождения, справа налево, в то время как в оригинале - слева направо). Если ты этого не знаешь - это твоя личная проблема. И уж НИКАК он не выглядит подобно тому, что приведено в первом посте...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)