본문 바로가기
C_C++ 프로그래밍/C_C++ 프로그래밍

[C++] 버블 정렬(Bubble Sort)

by RoJae 2019. 4. 1.

버블 정렬은 인접한 원소들을 교환하며, 이 모습이 흡사 거품들이

뾰로록 일어나는 것과 같다고 하여, Bubble Sort라고 불립니다.

(교환 정렬이라고도 불립니다. Exchange Sort)

 

...더보기

이해

E[5] = {95, 75, 85, 100, 75}이며

이를 오름차순으로 정렬한다면.

 

(95, 75), 85, 100, 50 => 75, 95, 85, 100, 50

75, (95, 85), 100, 50 => 75, 85, 95, 100, 50

75, 85, (95, 100), 50 => 75, 85, 95, 100, 50

75, 85, 95, (100, 50) => 75, 85, 95, 50, 100

자, 여기에서 마지막 요소가 배열의 최댓값으로 들어갔습니다.

 

(75, 85), 95, 50, 100 => 75, 85, 95, 50, 100

75, (85, 95), 50, 100 => 75, 85, 95, 50, 100

75, 85, (95, 50), 100 => 75, 85, 50, 95, 100

자, 여기에서 마찬가지로 마지막-1 요소가 배열의 두 번째로 큰 값이 들어갔습니다.

 

이런 식으로 반복하여.

50, 75, 85, 95, 100이 되는 것입니다.

 

 

 

#include<iostream>

using namespace std;

int main(){
	int size;
	cin >> size;
	int *arr = new int[size];
	
	for(int i = 0; i < size; i++)
		cin >> arr[i];
		
	for(int i = 0; i < size-1; i++){
		for(int j = 0; j < size-1-i; j++){
			if(arr[j] > arr[j+1]){
				int tmp;
				tmp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = tmp;
			}
		}
	}
	
	for(int i = 0; i < size; i++)
		cout << arr[i] << ' ';
		
	return 0;
}

※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다.

반응형

댓글