■ 조합 정렬하기 예제
------------------------------------------------------------------------------------------------------------------------
using System;
int[] array = new int[] { 10, 50, 30, 20, 90, 80, 15, 20 };
CombinationSort<int>(array);
for(int i = 0; i < array.Length; i++)
{
Console.Write(array[i]);
Console.Write(" ");
}
------------------------------------------------------------------------------------------------------------------------
■ 조합 정렬하기
------------------------------------------------------------------------------------------------------------------------
using System;
#region 조합 정렬하기 - CombinationSort<T>(itemArray)
/// <summary>
/// 조합 정렬하기
/// </summary>
/// <typeparam name="T">항목 타입</typeparam>
/// <param name="itemArray">항목 배열</param>
public void CombinationSort<T>(T[] itemArray) where T : IComparable
{
int gap = itemArray.Length;
bool swapped = true;
while(gap > 1 || swapped)
{
if(gap > 1)
{
gap = (int)(gap / 1.3d);
}
int i = 0;
swapped = false;
while(i + gap < itemArray.Length)
{
if(itemArray[i].CompareTo(itemArray[i + gap]) > 0)
{
T temporaryItem = itemArray[i];
itemArray[i ] = itemArray[i + gap];
itemArray[i + gap] = temporaryItem;
swapped = true;
}
i++;
}
}
}
#endregion
------------------------------------------------------------------------------------------------------------------------
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 최소 제곱법을 사용해 회귀분석 수식 구하기 (0) | 2014.11.30 |
---|---|
[C#/COMMON] 다각형 내부 위치 여부 구하기 (0) | 2014.11.30 |
[C#/COMMON] 시작 애플리케이션 설정하기 (0) | 2014.11.30 |
[C#/COMMON] Process 클래스 : Start 메소드를 사용해 커맨드 창 실행하기 (0) | 2014.11.30 |
[C#/COMMON] Process 클래스 : Start 메소드를 사용해 인터넷 익스플로러 실행하기 (0) | 2014.11.30 |
[C#/COMMON] 조합 정렬하기 (0) | 2014.11.30 |
[C#/COMMON] 칵테일 정렬하기 (0) | 2014.11.30 |
[C#/COMMON] 버블 정렬하기 (0) | 2014.11.30 |
[C#/COMMON] SQL 서버 연결 문자열 구하기 (0) | 2014.11.29 |
[C#/COMMON] SQL Express Server 연결 문자열 구하기 (0) | 2014.11.29 |
[C#/COMMON] MS Access 2007 연결 문자열 구하기 (0) | 2014.11.29 |
댓글을 달아 주세요