정렬 알고리즘 사용하기
주어진 데이터를 오름차순 또는 내림차순으로 정렬하는 정렬 알고리즘 중 가장 학습하기 편한 선택 정렬 알고리즘을 적용해 보겠습니다. 다음 내용을 입력한 후 실행해 보세요. 정렬 알고리즘은 가장 작거나 큰 데이터를 왼쪽으로 순서대로 이동합니다.
데이터를 순서대로 정렬: SortAlgorithm.cs
using System; class SortAlgorithm { static void Main() { //① 입력: Data Structure(Array, List, Stack, Queue, Tree, DB, ...) int[] data = { 3, 2, 1, 5, 4 }; int N = data.Length; //② 처리: 선택 정렬 알고리즘 for (int i = 0; i < N - 1; i++) //i = 0 to N - 1 { for (int j = i + 1; j < N; j++) //j = i + 1 to N { if (data[i] > data[j]) //부등호 방향: 오름차순(>), 내림차순(<) { int temp = data[i]; data[i] = data[j]; data[j] = temp; //SWAP } } } //③ 출력: Console, Desktop, Web, Mobile, ... for (int i = 0; i < N; i++) { Console.Write($"{data[i]}\t"); } Console.WriteLine(); } }
실행 결과
1 2 3 4 5
정렬 알고리즘은 현업에서도 굉장히 많이 사용합니다. 많은 정렬 알고리즘 중에서 선택 정렬 알고리즘은 꼭 익혀야 하는 필수 알고리즘이므로 기억하길 권장합니다. 물론 현업에서 일할 때는 선택 정렬 알고리즘보다 훨씬 빠르게 사용할 수 있는 Sort()와 OrderBy() 메서드 등이 이미 준비되어 있으니 그것을 사용해도 좋습니다.