알고리즘/백준(BOJ)
백준 2750 수 정렬하기
오뚜깅
2021. 1. 15. 17:12
반응형
백준 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;
}
반응형