Records rather than Memories

버블 정렬 Bubble sort 본문

Software/JAVA

버블 정렬 Bubble sort

Downer 2019. 11. 7. 16:40

두 번째 정렬 방식으로 버블 정렬(Bubble sort)가 있다.

작은 수를 찾아 앞으로 가져왔던 선택 정렬과 달리 

 

버블 정렬은 n번 째 인덱스와 n+1번 째 인덱스를 비교해 큰 값을 뒤로 보내는 방식이다.

 

다시 말해, 가장 큰 값을 가장 뒤 쪽 인덱스로 확정해나가며 첫 번째 인덱스까지 정렬하는 것이다. 

 

 

 

[8, 5, 3, 9, 1, 6]

5, 8, 3, 9, 1, 6 / 0번째 인덱스인 8와 1번째 인덱스 5을 비교해 8을 뒤로 보낸다.

5, 3, 8, 9, 1, 6 / 1번째 인덱스인 3과 2번째 인덱스 8을 비교해 8을 뒤로 보낸다.

5, 3, 8, 9, 1, 6 / 2번째 인덱스인 8과 3번째 인덱스 9를 비교해 9가 크므로 그대로 둔다.

        .

        .

5, 3, 8, 1, 6, 9 / 한 사이클이 돌면 가장 큰 수인 9가 가장 뒤로 보내지게 된다.

 

- 여기서 끝나지 않고 가장 뒤 인덱스에서 하나 줄인 인덱스까지 두 번째 사이클이 시작된다.

- 큰 값을 하나씩 확정해 첫 번째 인덱스까지 정해지면 버블 정렬이 끝나게 된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
public class Bubblesort {
    public void sort(int[] data) {
        int temp;
        for(int i=0; i<data.length; i++) {
            for(int j=0; j<data.length-1-i; j++) {
                if(data[j] > data[j+1]) {
                    temp = data[j];
                    data[j] = data[j+1];
                    data[j+1= temp;
                }
            }
        }
        
        }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
 
        Selectionsort numbers = new Selectionsort();
        
        int data[] = {853916};
        
        numbers.sort(data);
        test a = new test();
        
        for(int i=0; i < data.length; i++) {
            System.out.print(data[i]);
            if(i != data.length-1) {
                System.out.print(",");
            }
        }
    }
}
 
 
 
cs

 

'Software > JAVA' 카테고리의 다른 글

퀵 정렬 Quick sort  (0) 2019.11.08
삽입 정렬 Insertion sort  (0) 2019.11.08
선택정렬 Selection sort  (0) 2019.11.07
Object 자바에서 Object라는 클래스는?  (0) 2019.11.06
재귀함수를 이용한 자바 프로그래밍  (0) 2019.11.06
Comments