알고리즘
Bubble Sort (거품정렬)
2744m
2018. 10. 27. 17:13
자신과 다음원소를 비교해서 큰 것을 계속 오른쪽으로 swap한다.
맨 오른쪽을 제외하고 다시 반복한다.
<알고리즘>
bubbleSort(A[],n){
for last <- n down to 2
for i <- 1 to last-1
if(A[i]>A[i+1]) then A[i] <-> A[i+1]; //원소 교환
}
<구현>
#include <iostream>
#include <random>
#define SIZE 10
using namespace std;
int A[SIZE];
void print_arr();
void make_num() {
for (int i = 0; i < SIZE; i++) {
A[i] = rand() % 10;
}
print_arr();
}
void print_arr() {
for (int i = 0; i < SIZE; i++) {
cout << A[i] << ' ';
}
cout << endl;
}
void bubble_sort(int n) {
if (n > 0) {
int temp = 0;
for (int i = 0; i < n - 1; i++) {
if (A[i] > A[i + 1]) {
temp = A[i + 1];
A[i + 1] = A[i];
A[i] = temp;
}
}
bubble_sort(n - 1);
}
}
int main() {
ios::sync_with_stdio(0), cin.tie(0);
make_num();
bubble_sort(SIZE);
print_arr();
return 0;
}