Java로 버블정렬 구현하기!
공대생 워누입니다!
두 번째 포스팅이네요~ 두 개 블로그를 동시에 다룬다는 것은 조금 힘든 일인거 같아요 ㅎㅎ 게다가 블로그만 붙잡을 수 없는 노릇이기도 하구요..ㅜ 여튼! 힘내서 바로 진행하겠습니다.
.
학교 과제의 내용은 열개의 숫자를 입력받아서 정렬을 하는 프로그램을 작성하라고 하셨습니다. 정렬이라니.. 예전에 C언어로 정렬을 구현할 때 조금 어려웠던 기억이 있던지라 이번에도 어려울 것이라 생각했습니다만.. 이게 왠걸..? C언어로 작성했던 기억을 조금 살리니 자바는 훨씬 쉽더군요! 확실히 객체지향 언어가 쓸만합니다 ㅎㅎ
그럼 바로 코드를 올려볼게요~
.
[Bubble.java]
-> 숫자 열개를 버블 정렬 시켜주는 클래스입니다!
.
[BubbleSortProgram.java]
-> 메인 메서드가 포함되어 실행을 시켜줄 클래스입니다.
[결과화면]
버블 정렬이 수행되는 과정이 포함되어 있습니다. 10개의 숫자를 받았으므로
총 9단계에 걸처 진행이 되는 모습입니다.
설명은 사진에 보시는 것처럼 코드 한줄마다 주석을 달았으므로 자세하게 하지는 않겠습니다.
.
이번 버블 정렬에서 핵심이 되는 코드는 말하지 않아도 [Bubble.java] 클래스에 안에 있는 중첩 for문들입니다. 저 프로그램을 설계하는 과정중 의사 코드를 공개합니다.
+ Pseudo Code
(버블 정렬, 인접한 두 원소를 교환하여 왼쪽의 값이 오른쪽보다 크다면 교환하고 그렇지 않으면 교환하지 않는다.)
bubbleSort(a[], size)
for(i←size-1; i>0; i--){
for(j←0;j<i;j++){
if(a[j]>a[j+1]){
temp ← a[j];
a[j] ← a[j+1];
a[j+1] ← temp;
}
}
}
end bubbleSort()
저는 순서도보다 이렇게 의사 코드로 뭔가를 작성하는게 더 좋은거 같아요.
여기서 사용된 핵심 변수를 설명하자면,
i는 버블 정렬의 단계와 1단계 당 수행되는 버블 정렬의 횟수도 나타냅니다.
j는 버블 정렬의 비교를 위한 변수입니다.
.
이 정도면 설명도 충분히 된거 같고, 제가 표현하고자 싶은 것도 잘 표현된 것 같습니다만, 혹시나 제가 틀린 부분이 있거나 보완하면 좋은 점은 가르쳐 주시면 더욱 감사하겠습니다.