본문 바로가기
Java/기본 개념 및 클래스

[Java] 31. 버블 정렬

글: Song hyun 2024. 4. 19.
728x90
반응형

[Java] 31. 버블 정렬

 

1. 버블 정렬(bubble sort, sinking sort): 서로 인접한 두 원소를 검사하여, 정렬하는 알고리즘을 버블 정렬이라고 부른다.

-서로 인접한 2개의 변수를 비교, 크기가 순서대로(오름차순)가 아니라면 서로의 위치를 교환한다.

-원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기에 '버블 정렬'이라고 불린다.

 

-버블 정렬은 구현이 간단하다는 장점을 가지고 있다.

-하지만 순서에 맞지 않은 요소를 인접한 요소와 교환해, 정렬이 맞지 않을 때가 있다. 

 

버블 정렬의 예시

 

2. 버블 정렬의 예시

 

아래의 코드를 살펴보자. 

 

-(1) gameNumber 변수: 각각의 gameNumber(1,2,3,4,5,6) 변수들은 1~45까지의 수 중 랜덤한 값 하나를 가진다.

-(2) tempBox: 변수 tempBox는 gameNumber 속의 값을 옮기기 전, 잠시 저장해두는 역할을 한다.

-(3) if문: 오름차 순으로 변수들의 값을 비교한다.

예를 들어 gameNumber1이 gameNumber2보다 큰 값을 가지고 있다면, 오름차순 정렬에서 벗어난다고 볼 수 있다.

이 때 gameNumber1의 값을 변수 tempBox에 초기화해둔다. 그 뒤, gameNumber1에 gameNumber2의 값을 초기화하고, gameNumber2에 tempBox의 값을 초기화하는 식이다.

 

1<2 / 2<3 / 3<4 /4>5 이런 식으로, 한 칸씩 뒤로 밀려나 변수들을 차례차례 비교하며 순서를 정렬하고 있다는 것을 알 수 있다.

 

728x90
반응형