본문 바로가기

프로그래밍./Java

[자바] 버블소트 / 버블정렬 / 거품정렬 간단예제.


[java] 버블소트 / 버블정렬 / 거품정렬 간단예제.
버블소트. 버블정렬. 거품정렬. 흔히들 이렇게 이야기 한다.

현재 기준 되는 배열과 바로 다음 배열의 값을 비교해서 정렬한다.
그리고 다음 배열과 그 다음 배열의 값을 비교해서 정렬.

0번째와 1번째를 비교하고, 1번째와 2번째를 비교하고, 2번째와 3번째를 비교하는 방식
비교를 해서 오른쪽에 큰 수를 놓는다. 이렇게 큰 수가 오른쪽 끝에 떠오른다 해서 거품 정렬이라 함.

계속 비교를 해서 큰 수를 오른 쪽에 놓으며. 오른쪽 제일 끝에 가장 큰 수가 자리하게 되면
그 다음엔 처음부터 다시 하되, 마지막에 놓인 가장 큰 수를 비교하지 않는다. 당연히 더 작을테니.
따라서 큰 수가 오른쪽부터 차례로 놓이게 되고, 비교하는 횟수도 점차 줄어들게 된다.

 


결과적으로 모든 정렬이 같지만, 비교하는 방식에 따라 종류가 나뉜다.
당연히 if 문에서 부등호를 바꾸면 반대로, 작은 수가 오른쪽 끝에 자리하게 된다.

만약, 위의 코드에서 랜덤수를 발생하는 부분을 모르겠다면 아래 링크를 참조하자.
자바 Math.random() 함수 이해하기
 
참고 사항으로 위의 배열의 크기로 n을 사용하였다.
for문에서 5로 직접 적어 주어도 되지만
배열의 크기를 늘려 보고 싶거나 하는 경우에 for문에서 일일이 10으로
바꾸어 주는 것 보다 위 처럼 변수를 사용하면 변수 한번만 바꿔주면 된다.
.length 를 사용하여 배열의 크기를 자동으로 구했다.


C로 구현 한다면 sizeof 를 사용해서 배열의 크기를 구할 수 있다.

유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러주세요 ^-^