버블 정렬(bubble sort)
2022. 4. 19. 13:03ㆍC++/알고리즘
버블 정렬 (bubble sort)
버블 정렬은 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하는 비교-교환 과정을 리스트 왼쪽 끝에서 시작하여 오른쪽 끝까지 진행한다. 이러한 리스트의 비료-교환 과정이 한번 완료되면 가장 큰 레코드가 리스트의 오른쪽 끝으로 이동된다.
아래의 그림은 (22,37,15,19,12) 버블 정렬로 정렬한 것이다.
아래는 위의 그림을 코드로 구현한 것이다.
#include <iostream>
using namespace std;
#define ARRAY_SIZE 5
int main(void)
{
int array[ARRAY_SIZE] = {22,37,15,19,12};
for(int j = 0; j<ARRAY_SIZE;j++)
{
for(int i = 0; i<ARRAY_SIZE-j-1; i++) // 큰 루프 돌 때마다, 가장 큰 숫자가 오른쪽에 가기때문에
{ // 마지막까지 볼 필요가 없다.
if(array[i]<=array[i+1])
continue;
else
{
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
for(int i = 0; i<ARRAY_SIZE; i++)
cout<<array[i]<<" ";
}
'C++ > 알고리즘' 카테고리의 다른 글
재귀함수로 팩토리얼 구하기 (0) | 2022.04.21 |
---|---|
이진탐색(binary search) (0) | 2022.04.19 |
루트 불변성 (0) | 2022.04.07 |
삽입 정렬 - 1 (0) | 2022.04.06 |
자료구조 (0) | 2022.04.06 |