버블 정렬의 개념

거품 정렬(: bubble sort, sinking sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 {\displaystyle O(n^{2})}O(n^{2})로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다 – 위키백과

코드와 그림으로 이해하기

//랭킹 구하는 코드인데, for문의 조건 방식만 봐도 된다.
for(int i = 0; i < s.length - 1; i++) {
    for(int j = i; j < s.length - 1 - i; j++) {
        if(total[j] > total[j + 1]) {
            ranking[j]++;
        } else if(total[j] < total[j + 1]) {
            ranking[i]++;
	}
    }
}
  • 보기와 같이 가면서 계속 검사를 하기때문에 시간복잡도가 상당히 느리다.
  • 그러나 알고리즘을 처음 접하기에는 그림으로 이해하기에도 간단해서 사용하기 좋다.
  • i는 실행횟수로 index-1번을 실행한다. 그 이유는 1회 실행 때, 이미 뒤에까지 처리가 되었기 때문
  • j는 j와 인접한 j+1간의 비교, 처리과정을 거친다.

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다