첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ 쉘 정렬하기 예제

------------------------------------------------------------------------------------------------------------------------

using System;

 

int[] array = new int[] { 10, 50, 30, 20, 90, 80, 15, 20 };

 

ShellSort<int>(array);

 

for(int i = 0; i < array.Length; i++)

{

    Console.Write(array[i]);

    Console.Write(" ");

}

------------------------------------------------------------------------------------------------------------------------

 

■ 쉘 정렬하기

------------------------------------------------------------------------------------------------------------------------

using System;

 

#region 쉘 정렬하기 - ShellSort<T>(itemArray)

 

/// <summary>

/// 쉘 정렬하기

/// </summary>

/// <typeparam name="T">항목 타입</typeparam>

/// <param name="itemArray">항목 배열</param>

public void ShellSort<T>(T[] itemArray) where T : IComparable

{

    int half = (int)Math.Round(itemArray.Length / 2d);

 

    while(half > 0)

    {

        for(int i = half; i < itemArray.Length; i++)

        {

            T temporaryItem = itemArray[i];

 

            int j = i;

 

            while(j >= half && itemArray[j - half].CompareTo(temporaryItem) > 0)

            {

                itemArray[j] = itemArray[j - half];

 

                j -= half;

            }

 

            itemArray[j] = temporaryItem;

        }

 

        half = (int)Math.Round(half / 2.2d);

    }

}

 

#endregion

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요