반응형
백준 2750 수 정렬하기 문제는 시간복잡도는 상관 없이 정렬만 되면 해결 할 수 있는 문제다.
정렬에는 대표적으로 버블 정렬과 삽입 정렬이 있다.
아래는 각 정렬 방식에 대한 코드이다.
버블 정렬(Bubble Sort)
#include <iostream>
#include <cstring>
using namespace std;
void InsertionSort(int *arr, int length) {
int key;
for (int i = 1; i < length; i++) {
if (arr[i - 1] <= arr[i])
continue;
if (arr[i - 1] > arr[i]) {
key = arr[i];
for (int j = 0; j < i; j++) {
if (arr[j] > key) {
memmove(&arr[j + 1], &arr[j], sizeof(int) * (i - j));
arr[j] = key;
break;
}
}
}
}
}
int main() {
int N;
cin >> N;
int *arr = new int[N];
for (int i = 0; i < N; i++)
cin >> arr[i];
InsertionSort(arr, N);
for (int i = 0; i < N; i++)
cout << arr[i] << endl;
return 0;
}
삽입 정렬(Insertion Sort)
#include <iostream>
#include <cstring>
using namespace std;
void InsertionSort(int *arr, int length) {
int key;
for (int i = 1; i < length; i++) {
if (arr[i - 1] <= arr[i])
continue;
if (arr[i - 1] > arr[i]) {
key = arr[i];
for (int j = 0; j < i; j++) {
if (arr[j] > key) {
memmove(&arr[j + 1], &arr[j], sizeof(int) * (i - j));
arr[j] = key;
break;
}
}
}
}
}
int main() {
int N;
cin >> N;
int *arr = new int[N];
for (int i = 0; i < N; i++)
cin >> arr[i];
InsertionSort(arr, N);
for (int i = 0; i < N; i++)
cout << arr[i] << endl;
return 0;
}
반응형
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
백준 10989 수 정렬하기 3 (0) | 2021.01.17 |
---|---|
백준 2751 수 정렬하기2 (0) | 2021.01.15 |
백준 10818 최소, 최대 (0) | 2021.01.15 |
백준 2231번 분해합 (0) | 2021.01.11 |
백준 2798번 블랙잭 (0) | 2021.01.11 |