본문 바로가기
자료구조 알고리즘

선택정렬 (C#)

by LemongO 2024. 5. 19.

📌선택(Selection Sort) 란?

선택 정렬(Selection Sort)은 배열에서 최소값(또는 최대값)을 선택해서 맨 앞(또는 맨 뒤)으로 이동시키는 과정을 반복하여 전체 배열을 정렬하는 방식이다.

 

버블정렬때와 마찬가지로 오름차 순으로 다음 배열을 정렬해보자

 

선택 정렬은 다음과 같이 정렬된다.

 

첫 사이클을 돈 후, 배열에서 가장 작은값이 맨 앞으로 오게된다.

 

  • 배열의 크기가 n일 때, i = 0, i < n - 1까지 반복한다.
  • i + 1 번 원소부터 마지막 원소 크기까지 비교하기 때문에 j = i + 1, j < n까지 반복한다.
  • i == 정렬할 원소, j == 비교할 원소
  • 비교하는 원소들 중 가장 작은 값을 찾아야하므로 해당 인덱스를 저장할 int index를 따로 만들어 둔다.
public void SelectionSort(int[] arr)
{
    int n = arr.Length;
    for (int i = 0; i < n - 1; i++)
    {
        int index = i;
        for (int j = i + 1; j < n; j++)
            if (arr[index] > arr[j])
                index = j;

        int temp = arr[i];
        arr[i] = arr[index];
        arr[index] = temp;
    }
}

 

 

 

'자료구조 알고리즘' 카테고리의 다른 글

이진 탐색 (C#)  (0) 2024.05.27
선형 탐색 (C#)  (0) 2024.05.19
버블정렬 (C#)  (0) 2024.05.19
(C#) BFS  (0) 2024.05.12
(C#) DFS  (0) 2024.05.10