알고리즘/백준(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;
}
반응형