안정적인 출력이란 같은 숫자를 가진 카드가 여러 개 있을 때, 이들을 입력한 순서대로 출력하는 것을 의미한다.
예를들면, H4 C9 S4 D2 C3 입력 값이면 숫자로 오름차순으로 정렬하면,
D2 C3 H4 S4 C9가 출력이 된다.
버블정렬은 안정적인 정렬이라고 볼 수 있다.
#include <iostream>
using namespace std;
struct Card { char suit, value;};
void bubble(struct Card A[], int N) {
for(int i = 0; i < N; i++) {
for(int j = N - 1; j >= i+1; j--) {
if(A[j].value < A[j - 1].value) {
Card t = A[j];
A[j] = A[j - 1];
A[j - 1] = t;
}
}
}
}
void selection(struct Card A[], int N) {
for(int i = 0; i < N; i++) {
int minj = i;
for(int j = i; j < N; j++) {
if(A[j].value < A[minj].value) {
minj = j;
}
}
Card t = A[i]; A[i] = A[minj]; A[minj] = t;
}
}
void print(struct Card A[], int N) {
for(int i = 0; i < N; i++) {
if(i > 0) cout << " ";
cout << A[i].suit << A[i].value;
}
cout << endl;
}
int main() {
Card C1[100], C2[100];
int N;
char ch;
cin >> N;
for(int i = 0; i < N; i++) {
cin >> C1[i].suit >> C1[i].value;
}
for(int i = 0; i < N; i++) {
C2[i] = C1[i];
}
bubble(C1, N);
selection(C2, N);
print(C1, N);
print(C2, N);
}
'Tech > Algo' 카테고리의 다른 글
[알고리즘] 쉘 정렬 (shell sort) (0) | 2022.05.06 |
---|---|
[알고리즘] 선택 정렬 (Selection sort) (0) | 2022.05.06 |
[알고리즘] 버블 정렬 (bubble sort) (0) | 2022.05.06 |
[알고리즘] 삽입정렬 (Insertion Sort) (0) | 2022.05.06 |