알고리즘 - 선택정렬) 복습을 위해 작성하는 글 2023-04-07

rizz·2023년 4월 7일
0

알고리즘

목록 보기
2/15

📒 갈무리 - 선택정렬(Selection sort)

📌 선택정렬이란?

- 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해 나가는 방식의 정렬 방법이다.

 

📌 선택정렬의 과정

1. 리스트에서 최소값을 찾는다.

2. 최소값을 맨 앞의 값과 교체한다.(Swap)

3. 교체된 위치를 제외한 나머지 리스트를 같은 방법으로 교체해 나간다.

 

📌 직접 구현해 보자...

// C# 선택정렬 구현

    class Sort
    {
        public int[] NumberSort(int[] numbers)
        {
            for (int i = 0; i < numbers.Length; i++)
            {
                for (int j = i + 1; j < numbers.Length; j++)
                {
                    if (numbers[i] > numbers[j])
                    {
                        int minNumberTemp = numbers[j];
                        numbers[j] = numbers[i];
                        numbers[i] = minNumberTemp;
                    }
                }
            }
            return numbers;
        }
        // 가독성을 위해 각 기능마다 함수로 분리하면 좋지만, 지금은 편의상 간단하게 구현함
    }

 

📌 선택정렬의 특징

- 구현은 단순하지만 비효율적인 방법이다.

- 두 개의 for 문의 실행 횟수

- 비교하는 과정이 상수 시간이라는 가정 아래, n개의 주어진 리스트를 선택정렬로 정렬한다면 O(n²)의 시간이 걸린다.

profile
복습하기 위해 쓰는 글

0개의 댓글