버블정렬

stan·2023년 5월 25일
0

Java 개념

목록 보기
30/33
post-thumbnail

서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘


  1. 앞에서부터 현재 원소와 바로 다음의 원소를 비교한다.

  2. 현재 원소가 다음 원소보다 크면 원소를 교환한다.

  3. 다음 원소로 이동하여 해당 원소와 그 다음원소를 비교한다.

이 때, 각 라운드를 진행 할 때마다 뒤에서부터 한 개씩 정렬되기 때문에, 라운드가 진행 될 때마다 한 번씩 줄면서 비교하게 된다.

한마디로 정리하자면 이렇다.

총 라운드는 배열 크기 - 1 번 진행되고,

각 라운드별 비교 횟수는 배열 크기 - 라운드 횟수 만큼 비교한다.




public class BubbleSort {
	public static void main(String[] args) {
        int[] arr = {30, 5, 21, 10, 4, 13, 8, 25, 19, 1};
        
        //-i를 하는 이유? -> 제일 큰수가 맨 마지막으로 정렬이 됨 (맨 마지막은 비교를 안해도 된다는 것)
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

        //1 4 5 8 10 13 19 21 25 30
        for (int i = 0; i < arr.length; i++) {
            System.out.printf("%d ", arr[i]);
        }
    }
}


profile
이진 입니다

0개의 댓글

관련 채용 정보