문제링크 : https://www.acmicpc.net/problem/2750
문제풀이
삽입정렬, 거품정렬, 선택정렬 방식을 이용해 풀었다.
소스코드
/*
* 백준 2750번: 수 정렬하기
*/
#include <iostream>
using namespace std;
void insertionSort(int* arr, int len);
void bubbleSort(int* arr, int len);
void selectionSort(int* arr, int len);
int main() {
int N;
cin >> N;
int* arr = new int[N];
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
selectionSort(arr, N);
for (int i = 0; i < N; i++) {
cout << arr[i] << endl;
}
delete[] arr;
return 0;
}
void insertionSort(int* arr, int len) {
for (int i = 1; i < len; i++) {
int key = arr[i];
int prev = i - 1;
while (prev >= 0) {
if (key < arr[prev]) {
arr[prev + 1] = arr[prev];
prev--;
}
else {
break;
}
}
if (prev + 1 != i) arr[prev + 1] = key;
}
}
void bubbleSort(int* arr, int len) {
for (int i = len - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void selectionSort(int* arr, int len) {
for (int i = 0; i < len; i++) {
int min = arr[i];
int min_idx = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] < min) {
min = arr[j];
min_idx = j;
}
}
int temp = arr[i];
arr[i] = min;
arr[min_idx] = temp;
}
}'Algorithm > 문제풀이' 카테고리의 다른 글
| [백준] 2108번: 통계학 (0) | 2019.06.09 |
|---|---|
| [백준] 10989번: 수 정렬하기3 (0) | 2019.06.08 |
| [백준] 6064번: 카잉 달력 (0) | 2019.05.22 |
| [백준] 1475번: 방 번호 (0) | 2019.05.21 |
| [백준] 1157번: 단어 공부 (0) | 2019.05.21 |