문제링크 : 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 |