- 주어진 리스트 중에 최소값을 찾습니다.
- 그 값을 맨 앞에 위치한 값과 교체합니다.(패스(pass)).
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체합니다.
#include <iostream>
#include <vector>
void swap(int* a, int* b) noexcept
{
int temp = *a;
*a = *b;
*b = temp;
}
using namespace std;
int main()
{
int N;
scanf_s("%d", &N);
vector<int> numbers(N);
for (int i = 0; i < N; ++i)
scanf_s("%d", &numbers[i]);
for (int i = 0; i < N - 1; ++i)
{
int idx = i;
for (int j = i + 1; j < N; ++j)
{
if (numbers[j] < numbers[idx])
idx = j;
}
swap(numbers[i], numbers[idx]);
}
for (int i = 0; i < N; ++i)
printf("%d ", numbers[i]);
}
'algorithms (C++)' 카테고리의 다른 글
[C++] 삽입정렬 (1) | 2023.10.14 |
---|---|
[C++] 버블정렬 (1) | 2023.10.14 |
[C++] 탄화수소 질량 (1) | 2023.10.14 |
[C++] 3의 개수 (large) 🔥 (0) | 2023.10.14 |
[C++] 3의 개수 (small) (0) | 2023.10.14 |