반응형
정렬 하는 알고리즘 중에는 선택 정렬과 삽입정렬 그리고 버블 정렬이 있다.
이중 가장 손쉽게 코딩할 수 있는 선택 정렬에 대해서 정리해보겠다.
선택 정렬은 주어진 수에서 최솟값을 찾아(또는 최대값) 맨 앞에 위치하고 오름차순(또는 내림차순)으로 정리할 수 있는 알고리즘이다.
수도코드 형식으로 알아보곘다
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 |