버블정렬(bubble sort)_자바구현 :: 개발/일상_Mr.lee

버블정렬(bubble sort)_자바구현

Posted by Mr.mandu.
2016. 11. 8. 02:00 개발/java,spring

버블정렬에 대해 간단히 정리해 보았습니다.

역시 프로그래밍은...해봐야 정신차린다는... ㅠㅠ


간단한거라고 생각했지만 막상할려니 고민스러웠어요 ㅋㅋㅋ

이왕하는김에 블로그에 정리해서 올려두려고 합니다.


버블정렬의 기본 개념은

이웃한 데이터들을 비교하여 차레로 정렬한다는 것 입니다.


다음과 같은 배열이 있습니다.

8,3,6,2,10,4


step01

8,3,6,2,10,4


8과 3을 대소비교하여 정렬을 합니다.

결과는 8과 3이 바뀌게 되겠죠

3,8,6,2,10,4


step02

3,8,6,2,10,4

    ↑

이번에는 8과 6을 비교하게 됩니다.

이런식으로 배열의 끝까지 대소비교를하여 정렬하면 됩니다.


버블정렬은 나름 개념이 쉬운 알고리즘이라고 생각합니다.

모두들 한번씩 해보세요^^



소스코드는 아래와 같습니다.



/**

1. 이웃한 데이터들을 비교하여 대소비교하는 방식이다. 

2. 대소비교후 큰값을 오른쪽으로 정렬한다.

3. for문 1회 실행후 for문 회전수는 1씩 줄어든다. (이유 : 제일 큰값을 오른쪽에 정렬을 완료 시켰으므로)

*/

class BubbleSort {

Comm comm = new Comm();

void bubbleSort(int pivot, int[] testArray){

if(0<pivot){

for(int i = 0; i<pivot-1; i++){

if(testArray[i]>testArray[i+1]){

comm.swapArray(i, i+1, testArray); // 데이터를 교환

}

}

bubbleSort(pivot-1, testArray); //pivot-1을 사용하여 for문 회전수를 줄임

}

}

}




실행결과 첨부하겠습니다.

실행방법은 메인에서 함수를 호출하여 사용하였습니다.


bubbleSort.bubbleSort(testArray.length, testArray);