// 익명메소드를 통한 버블 정렬 구현
delegate int Compare(int a, int b);
class Program
{
static void BubbleSort(int[] Dataset, Compare Comparer)
{
int i = 0;
int j = 0;
int temp = 0;
for (i = 0; i < Dataset.Length; i++)
{
for (j = 0; j < Dataset.Length - 1; j++)
{
if (Comparer(Dataset[j], Dataset[j + 1]) > 0)
{
temp = Dataset[j + 1];
Dataset[j + 1] = Dataset[j];
Dataset[j] = temp;
}
}
}
}
static void Main(string[] args)
{
int[] testArray = { 3, 6, 1, 10, 2, 7 };
Console.WriteLine("Sorting Ascending...");
BubbleSort(testArray, delegate (int a, int b) {
if (a > b)
return 1;
else if (a == b)
return 0;
else
return -1;
});
for (int i = 0; i < testArray.Length; i++)
{
Console.WriteLine($"{testArray[i]}");
}
// 2번째 테스트
int[] testArray2 = { 7, 2, 8, 10, 11 };
Console.WriteLine("\n Sorting Dscending..");
BubbleSort(testArray2, delegate (int a, int b) {
if (a > b)
return -1;
else if (a == b)
return 0;
else
return 1;
});
for (int i = 0; i < testArray2.Length; i++)
{
Console.WriteLine($"{testArray2[i]} ");
}
Console.WriteLine();
}
}
728x90
'C#' 카테고리의 다른 글
C# / 람다 실습 - Lambda / 기초 구문 (0) | 2022.08.10 |
---|---|
C# / 대리자 실습 - Delegate / event 구현 (0) | 2022.08.10 |
C# / 대리자 실습 - Delegate / 익명 메소드 구현 (0) | 2022.08.10 |
C# / 대리자 실습 - 대리자 체인 DelegateChain / 체인 연산 (0) | 2022.08.10 |
C# / 대리자 실습 - Delegate / 정렬 메소드 구현 추가IComparable<T> 사용 (0) | 2022.08.10 |
댓글