티스토리 뷰

[Java] 버블정렬(BubbleSort)

BuubleSort.java

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
38
39
40
41
42
43
44
package org.elukasoul.BubbleSort;
 
public class BubbleSort {
    
    // @Date: 2016.05.29
    // @Developer: 손혁(elukasoul@gmail.com)
    // @프로그램 개요: 임외의 데이터가 무작위로 담겨있는 배열을 오름차순으로 (버블)정렬하는 알고리즘
    // 버블정렬을 객체지향 프로그래밍으로 작성
 
    public static void main(String[] args) {
 
        Sort sort = new Sort();
        ArrayData arrayData = new ArrayData();
 
        System.out.print("배열의 길이를 입력하세요: ");
        // 배열 생성
        int[] array = new int[arrayData.setLength()];
 
        // 배열에 데이터 입력
        for (int i = 0; i < array.length; i++) {
            array[i] = arrayData.setData();
        }
 
        // 정렬 전 배열 출력
        System.out.print("정렬 전 Array는 ");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println("입니다.");
 
        // 버블정렬
        sort.bubbleSort(array);
 
        // 정렬 후 배열 출력
        System.out.print("정렬 후 Array는 ");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println("입니다.");
 
    }
 
}
 
cs


ArrayData.java

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
package org.elukasoul.sort;
 
import java.util.Scanner;
 
public class ArrayData {
 
    // @Date: 2016.05.29
    // @Developer: 손혁(elukasoul@gmail.com)
    // @프로그램 개요: 배열의 길이와 배열의 데이터를 정의하는 클래스
 
    // 입력을 받기 위해 Scaaner 클래스 사용
    private Scanner input = new Scanner(System.in);
 
    // 배열의 길이를 정의하는 메소드
    public int setLength() {
 
        int arrLength = input.nextInt();
 
        return arrLength;
    }
 
    // 선언된 배열에 데이터를 입력하는 메소드
    public int setData() {
 
        int arrData = (int) (Math.random() * 10);
        // int arrData = input.nextInt();
 
        return arrData;
    }
 
}
 
cs


Sort.java

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
package org.elukasoul.sort;
 
public class Sort {
 
    // @Date: 2016.05.29
    // @Developer: 손혁(elukasoul@gmail.com)
    // @프로그램 개요: 정렬 알고리즘을 정의한 클래스
 
    public int[] bubbleSort(int[] array) {
 
        // 정렬 중 자리교환이 일어날 때 사용되는 임시변수
        int temp = 0;
 
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - 1; j++) {
                // array[j]가 array[j + 1]보다 크면 자리교환을 한다.
                if (array[j + 1< array[j]) {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1= temp;
                }
            }
        }
 
        return array;
    }
 
}
 
cs



Output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
배열의 길이를 입력하세요: 10
9
7
2
5
1
8
4
1
7
5
정렬 전 Array는 9 7 2 5 1 8 4 1 7 5 입니다.
정렬 후 Array는 1 1 2 4 5 5 7 7 8 9 입니다.
 
cs


'Programming > Java' 카테고리의 다른 글

[Java] 정수 세개를 입력받아 가장 큰 수 구하기  (0) 2016.06.04
[Java] 홀수 짝수  (0) 2016.06.03
[Java] 학점 구하기  (1) 2016.06.03
'학습 프로젝트'  (0) 2016.06.02
[Java] 선택정렬 (SelectionSort)  (0) 2016.05.31

Recent Comments