java 학습일기 day6 - 버블정렬

이건구·2023년 9월 5일
0

java학습일기

목록 보기
5/13

- 버블정렬 알고리즘

1. 버블정렬이란.

2. 버블정렬 설명.

3. 버블정렬 사용법.

1. 버블정렬이란.

- 두 개의 인접한 원소를 비교하여 정렬하는 방식이다.

2. 버블정렬 설명.

- 버블정렬을 이해하려면 그림으로 보면 이해하기가 쉽다.

위의 사진을 보면 인접한 숫자와 비교하여 큰 숫자가 뒤로 쌓이는게 보인다.

쌓이는 모습이 마치 버블이 올라오는것 같아 버블정렬이라고한다.

그리고 위를 보면 뭔가 이중반복문을 사용하면 될것 같이 생겼다.

3. 버블정렬 사용법.

버블정렬 사용법은 이러하다.

class Exam {
    public int solution(int[] array) {
        int n = array.length;
        int temp;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n-1-i; j++) {
                if (array[j] > array[j+1]) {
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
    }
}

그냥 사용해도 괜찮지만 나는 보기 편하게 하기 위해 array.length를 변수 n으로 설정했다.

그리고 인덱스의 숫자만큼 반복하는 반복문을 만드는데 인덱스는 배열의 길이에서 1을 빼면되므로 i < n으로 설정했다.

첫반째 반복문 안에 있는 두번째 반복문은 종료조건을 n-1-i를 해주면 좋은데 그 이유는 n으로 설정하면 for문안에 있는 if문에서 array[j+1] 여기에서 두번째 for문의 j보다 큰 j+1의 인덱스 번를 부르는데 그건 기존에 있는 array의 갯수를 벗어났기 때문이다.

그리고 난후 두번째 반복문 안에 조건문을 만들어 앞에있는 원소가 더 크면 그 원소를 미리 만들어둔 temp라는 변수에 저장후 array[j]에 array[j+1]을 넣는데 이렇게만 두면 array[j+1]만 두개가 되므로 array[j+1]에 미리 저장해둔 array[j]의 값 temp를 넣으면 위 코드의 해석이 끝난다.

0개의 댓글