[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 |