![]() |
![]() ![]() ![]() ![]() |
|
Сортировка массива по алгоритму 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 прямо в свой смартфон. Подпишитесь на наш :: Главная :: Сортировка ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||