728x90
반응형
728x170
▶ 칵테일 정렬하기 예제
using System;
int[] array = new int[] { 10, 50, 30, 20, 90, 80, 15, 20 };
CocktailSort1<int>(array);
for(int i = 0; i < array.Length; i++)
{
Console.Write(array[i]);
Console.Write(" ");
}
728x90
▶ 칵테일 정렬하기
using System;
#region 칵테일 정렬하기 1 - CocktailSort1<T>(itemArray)
/// <summary>
/// 칵테일 정렬하기 1
/// </summary>
/// <typeparam name="T">항목 타입</typeparam>
/// <param name="itemArray">항목 배열</param>
public void CocktailSort1<T>(T[] itemArray) where T : IComparable
{
bool swapped;
do
{
swapped = false;
for(int i = 0; i < itemArray.Length - 1; i++)
{
if(itemArray[i].CompareTo(itemArray[i + 1]) > 0)
{
T temporaryItem = itemArray[i];
itemArray[i ] = itemArray[i + 1];
itemArray[i + 1] = temporaryItem;
swapped = true;
}
}
if(!swapped)
{
break;
}
swapped = false;
for(int i = 0; i < itemArray.Length - 1; i++)
{
if(itemArray[i].CompareTo(itemArray[i + 1]) > 0)
{
T temporaryItem = itemArray[i];
itemArray[i ] = itemArray[i + 1];
itemArray[i + 1] = temporaryItem;
swapped = true;
}
}
}
while(swapped);
}
#endregion
#region 칵테일 정렬하기 2 - CocktailSort2<T>(itemArray)
/// <summary>
/// 칵테일 정렬하기 2
/// </summary>
/// <typeparam name="T">항목 타입</typeparam>
/// <param name="itemArray">항목 배열</param>
public void CocktailSort2<T>(T[] itemArray) where T : IComparable
{
bool swapped;
int start = (-1);
int end = itemArray.Length - 1;
do
{
swapped = false;
start++;
for(int i = start; i < end; i++)
{
if(itemArray[i].CompareTo(itemArray[i + 1]) > 0)
{
T temporaryItem = itemArray[i];
itemArray[i ] = itemArray[i + 1];
itemArray[i + 1] = temporaryItem;
swapped = true;
}
}
if(!swapped)
{
break;
}
swapped = false;
end--;
for(int i = end; i >= start; i--)
{
if(itemArray[i].CompareTo(itemArray[i + 1]) > 0)
{
T temporaryItem = itemArray[i];
itemArray[i ] = itemArray[i + 1];
itemArray[i + 1] = temporaryItem;
swapped = true;
}
}
}
while(swapped);
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[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] SQL 서버 연결 문자열 구하기 (0) | 2014.11.29 |
[C#/COMMON] SQL Express Server 연결 문자열 구하기 (0) | 2014.11.29 |
[C#/COMMON] MS Access 2007 연결 문자열 구하기 (0) | 2014.11.29 |
[C#/COMMON] MS Access 연결 문자열 구하기 (0) | 2014.11.29 |
댓글을 달아 주세요