알고리즘

[c++] 선택 정렬 알고리즘

TIM_0529 2021. 1. 27. 18:23
반응형

정렬 하는 알고리즘 중에는 선택 정렬과 삽입정렬 그리고 버블 정렬이 있다.

이중 가장 손쉽게 코딩할 수 있는 선택 정렬에 대해서 정리해보겠다.

 

선택 정렬은 주어진 수에서 최솟값을 찾아(또는 최대값) 맨 앞에 위치하고 오름차순(또는 내림차순)으로 정리할 수 있는 알고리즘이다.

 

수도코드 형식으로 알아보곘다

EX) 주어진 수={2,4,1,6,5}

 

작은수를 저장할 변수 min

 

선택 정렬

탐색

2 4 1 6 5

1 4 2 6 5

1 2 4 6 5

1 2 4 6 5

1 2 4 5 6

1 2 4 5 6

 

 

코드로 보면 이런식이다.

 


int arr[] = { 2,4,1,6,5 };
int min()


 for (int i = 0; i < 5; i++)
 {
    for (int j = i+1; j < 5; j++) //i번째와 바로 다음수를 비교하기 위해 i+1을 해주고 전체 수를 모두 비교해 min을찾는                                           다
    {
        if (arr[i] > arr[j]) //min을 찾았다면 스왑해준다.
        {
           min = arr[j];
           arr[j] = arr[i];
           arr[i] = min;
        }
    }
  }
   for (int i = 0; i < 5; i++)
   {
     cout << arr[i]<<endl;
   }

}

 

반응형

'알고리즘' 카테고리의 다른 글

[자료구조 Stack C++] 구현  (0) 2023.02.23
[백준] 2439 - 별 찍기  (0) 2023.01.29