‘Array.Sort’
int[] numbers = { 5, 2, 8, 1, 9, 3 };
Array.Sort(numbers);
- 배열을 오름차순으로 정렬하는 메소드입니다. 배열을 직접 정렬하며, 배열의 요소들을 비교하여 정렬합니다. 인자로 배열을 받으며, 배열의 요소들은 IComparable 인터페이스를 구현하고 있어야 합니다.
‘Array.Reverse’
int[] numbers = { 5, 2, 8, 1, 9, 3 };
Array.Reverse(numbers);
- 배열의 요소들의 순서를 뒤집는 메소드입니다. 배열을 직접 뒤집습니다.
‘List<T>.Sort’
List<int> numbers = new List<int> { 5, 2, 8, 1, 9, 3 };
numbers.Sort();
- List<T> 객체를 오름차순으로 정렬하는 메소드입니다. List<T> 객체를 직접 정렬하며, List<T>의 요소들을 비교하여 정렬합니다. 인자로 IComparer<T> 인터페이스를 구현한 비교자를 전달할 수도 있습니다.
‘List<T>.Reverse’
List<int> numbers = new List<int> { 5, 2, 8, 1, 9, 3 };
numbers.Reverse();
- List<T> 객체의 요소들의 순서를 뒤집는 메소드입니다. List<T> 객체를 직접 뒤집습니다.
The time complexity of the Sort
메소드 |
시간 복잡도 |
최선 |
최악 |
Array.Sort |
O(n log n) |
O(n log n) |
O(n^2) |
List<T>.Sort |
O(n log n) |
O(n log n) |
O(n log n) |
Array.Sort
메소드는 QuickSort 알고리즘을 사용하며, 최선의 경우 O(n log n), 평균적인 경우 O(n log n), 최악의 경우 O(n^2)의 시간 복잡도를 갖습니다. 그러나 최악의 경우인 O(n^2)는 매우 드물게 발생하며, 보통은 평균적인 경우인 O(n log n)의 시간 복잡도를 가집니다.
List<T>.Sort
메소드는 특정한 정렬 알고리즘을 사용하지 않고, 구현에 따라 다양한 정렬 알고리즘 중에서 선택하여 사용됩니다. .NET 프레임워크의 구현에 따라 다양한 정렬 알고리즘 중에서 효율적인 알고리즘을 선택하며, 최선의 경우 O(n log n), 평균적인 경우 O(n log n), 최악의 경우 O(n log n)의 시간 복잡도를 가지는 경우가 일반적입니다.