JAVA 코드로 보는 버블정렬(BubbleSort)
위 로직이 실행되게되면 10자리의 배열에 0~9까지 값이 랜덤으로 생성된다.
생성된 숫자 : 1338675973
위 로직을 일부 해석해보겠다.
빨간색으로 표시된 부분이 비교하는 부분이다.
배열[0]의 값 1과 3을 비교한다.
1338675973
배열[1]의 값 3과 3을 비교한다.
1338675973
배열[2]의 값 3과 8을 비교한다.
1338675973
배열[3]의 값 8과 6을 비교한다.
1338675973
배열[3]의 데이터가 배열[4]의 데이터보다 크다
배열[3] : 8과 배열[4] : 6 위치를 변경 -> 13368(위치변경)75973
배열[4]의 값 8과 7을 비교한다.
1336875973
배열[4]의 데이터가 배열[5]의 데이터보다 크다
배열[4] : 8와 배열[5] : 7 위치를 변경 -> 133678(위치변경)5973
배열[5]의 값 8과 5을 비교한다.
1336785973
배열[5] 데이터가 배열[6]의 데이터보다 크다
배열[5] 데이터 : 8와 배열[6] 데이터 : 5 위치를 변경 -> 1336758(위치변경)973
배열[6]의 값 8과 9를 비교한다.
1336758973
배열[7]의 값 9과 7를 비교한다.
1336758973
배열[7] 데이터가 배열[8]의 데이터보다 크다
배열[7] 데이터 : 9과 배열[8] 데이터 : 7 위치를 변경 -> 133675879(위치변경)3
배열[8]의 값 9과 3를 비교한다.
1336758793
배열[8] 데이터가 배열[9]의 데이터보다 크다
배열[8] 데이터 : 9와 배열[9] 데이터 : 3 위치를 변경 -> 1336758739(위치변경)
이런식으로 반복되면 맨 뒷자리는 가장 큰수가 남게된다.
맨 뒷자리 값을 가장 큰수이므로 비교 하지않고 하나씩 작은 숫자로 반복하게된다.
또 check값으로 데이터의 변경이 없을 경우 즉 정렬 완료시 반복을 중지한다.