- 주어진 리스트를 시작하고, 첫 번째 원소부터 마지막 원소까지 순차적으로 비교합니다.
- 인접한 두 원소를 비교하여, 만약 현재 원소가 다음 원소보다 크다면, 두 원소를 교체합니다.
- 이 과정을 리스트의 처음에서부터 끝까지 계속 반복합니다.
- 이로써 가장 큰 원소가 리스트의 마지막으로 이동하게 됩니다.
- 다시 첫 번째 원소부터 정렬되지 않은 원소까지 같은 과정을 반복합니다.
- 위의 과정을 리스트에 원소가 한 개 남을 때까지 반복합니다.
#include <iostream>
#include <vector>
void swap(int& a, int& b) noexcept
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int N;
scanf_s("%d", &N);
std::vector<int> arr(N);
for (int i = 0; i < N; ++i)
scanf_s("%d", &arr[i]);
for (int i = 0; i < N; ++i)
for (int j = 0; j < N - 1 - i; ++j)
if (arr[j] > arr[j + 1])
swap(arr[j], arr[j + 1]);
for (int i = 0; i < N; ++i)
printf("%d ", arr[i]);
}
'algorithms (C++)' 카테고리의 다른 글
[C++] 3등의 성적은? (0) | 2023.10.15 |
---|---|
[C++] 삽입정렬 (1) | 2023.10.14 |
[C++] 선택정렬 (1) | 2023.10.14 |
[C++] 탄화수소 질량 (1) | 2023.10.14 |
[C++] 3의 개수 (large) 🔥 (0) | 2023.10.14 |