Java 공부하기

Java로 버블정렬 구현하기!

워누 2017. 10. 26. 01:32

공대생 워누입니다!

두 번째 포스팅이네요~ 두 개 블로그를 동시에 다룬다는 것은 조금 힘든 일인거 같아요 ㅎㅎ 게다가 블로그만 붙잡을 수 없는 노릇이기도 하구요..ㅜ 여튼! 힘내서 바로 진행하겠습니다.

.

학교 과제의 내용은 열개의 숫자를 입력받아서 정렬을 하는 프로그램을 작성하라고 하셨습니다. 정렬이라니.. 예전에 C언어로 정렬을 구현할 때 조금 어려웠던 기억이 있던지라 이번에도 어려울 것이라 생각했습니다만.. 이게 왠걸..? C언어로 작성했던 기억을 조금 살리니 자바는 훨씬 쉽더군요! 확실히 객체지향 언어가 쓸만합니다 ㅎㅎ

그럼 바로 코드를 올려볼게요~

.

[Bubble.java]

 

-> 숫자 열개를 버블 정렬 시켜주는 클래스입니다!

.

[BubbleSortProgram.java]

 

-> 메인 메서드가 포함되어 실행을 시켜줄 클래스입니다.

 

[결과화면]

 

 

버블 정렬이 수행되는 과정이 포함되어 있습니다. 10개의 숫자를 받았으므로

총 9단계에 걸처 진행이 되는 모습입니다. 

설명은 사진에 보시는 것처럼 코드 한줄마다 주석을 달았으므로 자세하게 하지는 않겠습니다.

.

이번 버블 정렬에서 핵심이 되는 코드는 말하지 않아도 [Bubble.java] 클래스에 안에 있는 중첩 for문들입니다. 저 프로그램을 설계하는 과정중 의사 코드를 공개합니다.

 

+ Pseudo Code

(버블 정렬, 인접한 두 원소를 교환하여 왼쪽의 값이 오른쪽보다 크다면 교환하고 그렇지 않으면 교환하지 않는다.)

 

bubbleSort(a[], size)

for(isize-1; i>0; i--){

for(j0;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는 버블 정렬의 비교를 위한 변수입니다.

.

이 정도면 설명도 충분히 된거 같고, 제가 표현하고자 싶은 것도 잘 표현된 것 같습니다만, 혹시나 제가 틀린 부분이 있거나 보완하면 좋은 점은 가르쳐 주시면 더욱 감사하겠습니다.