Предмет: Информатика, автор: berezovskmood

Помогите пожалуйста с заданием на PASCAL, я не понимаю как реализовать это

Приложения:

berezovskmood: Все же хотелось бы чет по проще.
berezovskmood: Ладно, спасибо
berezovskmood: Да уж)

Ответы

Автор ответа: BobbyFresnel
0

===== PascalABC.NET =====

procedure SortShell<T>(a: array of T);

 where T: IComparable<T>;

// сортировка по Шеллу

begin

 var n := a.Length;

 var d := n div 2;

 while d > 0 do

 begin

   var k := True;

   while k do

   begin

     k := False;

     for var i := 0 to n - d - 1 do

       if a[i].CompareTo(a[i + d]) > 0 then begin

         Swap(a[i], a[i + d]);

         k := True

       end

   end;

   d := d div 2

 end

end;

begin

 var a := ArrRandom(10, -20, 20); a.Println;

 SortShell(a); a.Println

end.

Приложения:
Похожие вопросы
Предмет: Математика, автор: Аноним