더북(TheBook)

정렬 알고리즘 사용하기

주어진 데이터를 오름차순 또는 내림차순으로 정렬하는 정렬 알고리즘 중 가장 학습하기 편한 선택 정렬 알고리즘을 적용해 보겠습니다. 다음 내용을 입력한 후 실행해 보세요. 정렬 알고리즘은 가장 작거나 큰 데이터를 왼쪽으로 순서대로 이동합니다.

데이터를 순서대로 정렬: 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() 메서드 등이 이미 준비되어 있으니 그것을 사용해도 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.