<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3AShellSortAlgorithm</id>
	<title>StartprogrammingusingObjectPascal:ShellSortAlgorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3AShellSortAlgorithm"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:ShellSortAlgorithm&amp;action=history"/>
	<updated>2026-05-01T07:48:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:ShellSortAlgorithm&amp;diff=348&amp;oldid=prev</id>
		<title>Onionmixer: SPOP 쉘정렬알고리즘 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:ShellSortAlgorithm&amp;diff=348&amp;oldid=prev"/>
		<updated>2012-07-26T10:58:16Z</updated>

		<summary type="html">&lt;p&gt;SPOP 쉘정렬알고리즘 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===쉘 정렬 알고리즘===&lt;br /&gt;
&lt;br /&gt;
많은 양의 데이터가 있을 때 가장 빠른 정렬 방법이며, 데이터가 약간 정렬되어 있을 경우 버블 정렬과 유사하지만, 앞의 두 정렬 알고리즘보다는 좀 더 복잡합니다.&lt;br /&gt;
&lt;br /&gt;
이 정렬 알고리즘의 이름은 창안자 도널드 쉘의 이름에서 따왔습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
program ShellSort;&lt;br /&gt;
&lt;br /&gt;
{$mode objfpc}{$H+}&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
    {$IFDEF UNIX}{$IFDEF UseCThreads}&lt;br /&gt;
    cthreads,&lt;br /&gt;
    {$ENDIF}{$ENDIF}&lt;br /&gt;
    Classes;&lt;br /&gt;
&lt;br /&gt;
procedure ShellS(var X: array of Integer);&lt;br /&gt;
var&lt;br /&gt;
    Done: Boolean;&lt;br /&gt;
    Jump, j, i: Integer;&lt;br /&gt;
    Temp: Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
    Jump:= High(X);&lt;br /&gt;
    while (Jump &amp;gt; 0) do // Outer loop&lt;br /&gt;
    begin&lt;br /&gt;
        Jump:= Jump div 2;&lt;br /&gt;
        repeat         // Intermediate loop&lt;br /&gt;
            Done:= True;&lt;br /&gt;
            for j:= 0 to High(X) - Jump do // Inner loop&lt;br /&gt;
            begin&lt;br /&gt;
                i:= j + Jump;&lt;br /&gt;
                if X[j] &amp;gt; X[i] then // Swap&lt;br /&gt;
                begin&lt;br /&gt;
                    Temp:= X[i];&lt;br /&gt;
                    X[i]:= X[j];&lt;br /&gt;
                    X[j]:= Temp;&lt;br /&gt;
                    Done:= False;&lt;br /&gt;
                end;&lt;br /&gt;
            end; // end of inner loop&lt;br /&gt;
        until Done; // end of intermediate loop&lt;br /&gt;
    end; // end of outer loop&lt;br /&gt;
end;&lt;br /&gt;
var&lt;br /&gt;
    Numbers: array [0 .. 9] of Integer;&lt;br /&gt;
    i: Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
    Writeln(&amp;#039;Please input 10 random numbers&amp;#039;);&lt;br /&gt;
    for i:= 0 to High(Numbers) do&lt;br /&gt;
    begin&lt;br /&gt;
        Write(&amp;#039;#&amp;#039;, i + 1, &amp;#039;: &amp;#039;);&lt;br /&gt;
        Readln(Numbers[i]);&lt;br /&gt;
    end;&lt;br /&gt;
    ShellS(Numbers);&lt;br /&gt;
    Writeln;&lt;br /&gt;
    Writeln(&amp;#039;Numbers after Shell sort: &amp;#039;);&lt;br /&gt;
    for i:= 0 to High(Numbers) do&lt;br /&gt;
    begin&lt;br /&gt;
        Writeln(Numbers[i]);&lt;br /&gt;
    end;&lt;br /&gt;
    Write(&amp;#039;Press enter key to close&amp;#039;);&lt;br /&gt;
    Readln;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>