Сортировка массива по алгоритму ShellDelphi , Синтаксис , СортировкаСортировка массива по алгоритму Shell
Оформил: DeeCo { The following procedure sorts an Array with the fast Shell-Sort algorithm. Invented by Donald Shell in 1959, the shell sort is the most efficient of the O(n2) class of sorting algorithms } { Die folgende Prozedur Sortiert ein Array mit dem schnellem Shell-Sort Algorithmus. } Procedure Sort_Shell(var a: array of Word); var bis, i, j, k: LongInt; h: Word; begin bis := High(a); k := bis shr 1;// div 2 while k > 0 do begin for i := 0 to bis - k do begin j := i; while (j >= 0) and (a[j] > a[j + k]) do begin h := a[j]; a[j] := a[j + k]; a[j + k] := h; if j > k then Dec(j, k) else j := 0; end; // {end while] end; // { end for} k := k shr 1; // div 2 end; // {end while} end; Это реализация алгоритма сортировки Shell в языке программирования Delphi. Алгоритм Shell - это тип сортировки, который улучшает алгоритм bubble sort, используя более эффективный процесс вставки, похожий на insertion sort, для перестановки элементов. Вот разбивка кода:
Время сложности этой реализации алгоритма Shell - O(n^2), где Некоторые потенциальные улучшения этого кода включают:
В целом, это реализация алгоритма Shell - пример базового кода, который может быть использован как начало для дальнейшей оптимизации и доработки. В статье рассматривается алгоритм Shell для сортировки массива, разработанный Донделем Шеллом в 1959 году и являющийся наиболее эффективным из алгоритмов класса O(n2). Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Сортировка ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |