버블 정렬은(Bubble Sort) 두 인접한 원소를 순차적으로 정렬하는 방법이고 2가지 순서가 있습니다.

1. 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를 ... N-1번째 원소와 N번째 원소를 비교 합니다.

2. 1회전이 끝나면 가장 큰 원소가 맨 마지막으로 이동하기 때문에 다음 회전에서의 마지막은 N-2 원소와 N-1 원소가 됩니다.

 

아래는 위의 순서에 맞게 실행한 예제입니다.

- 배열에 저장되는 값은 [3, 6, 0, 9, 1] 입니다.

Sequence Table Values Result
1 [3, 6, 0, 9, 1]  6<->0 [3, 0, 6, 9, 1]
1 [3, 0, 6, 9, 1] 9<->1 [3, 0, 6, 1, 9]
2 [3, 0, 6, 1, 9] 3<->0 [0, 3, 6, 1, 9]
3 [0, 3, 6, 1, 9] 6<->1 [0, 3, 1, 6, 9]
4 [0, 3, 1, 6, 9] 3<->1 [0, 1, 3, 6, 9]

 

 

 

아래는 선택 정렬을 구현한 자바 예제입니다.

 


package algorithm;

import java.util.Arrays;

public class BubbleSort {

	public static void main(String[] args) {
		int[] a = { 3, 6, 0, 9, 1 };
		int[] sorted_a = bubbleSort(a);

		System.out.print(Arrays.toString(a));
	}

	public static int[] bubbleSort(int[] a) {
		int i, j, temp;
		for (i = a.length - 1; i > 0; i--) {
			for (j = 0; j < i; j++) {
				if (a[j] > a[j + 1]) {
					temp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = temp;
				}
			}
		}
		return a;
	}

}

선택 정렬(Selection Sort)는 제자리 정렬의 알고리즘이며 3가지 순서가 있습니다.

1. 주어진 배열 값들 중에서 최소값을 찾습니다.

2. 그 최소값을 실행 순서의 값과 교체를 합니다.

3. 그렇게 첫 번째, 두 번째...마지막 -1회 까지 1, 2번 과정을 진행 합니다.

 

아래는 위의 순서에 맞게 실행한 예제입니다.

- 배열에 저장되는 값은 [3, 6, 0, 9, 1] 입니다.

Sequence Table Minimum Value
1 [3, 6, 0, 9, 1] 0
2 [0, 6, 3, 9, 1] 1
3 [0, 1, 3, 9, 6] 6
4 [0, 1, 3, 6, 9] -

 

 

아래는 선택 정렬을 구현한 자바 예제입니다.

package algorithm;

public class SelectionSort {

	public static void main(String[] args) {
		int[] a = { 3, 6, 0, 9, 1 };
		int[] sorted_a = selectionSort(a);
		System.out.print(Arrays.toString(a)
	}

	public static int[] selectionSort(int[] a) {
		int i, j;
		int temp;
		for (i = 0; i <= a.length - 1; i++) {
			for (j = 0; j <= a.length - 1; j++) {
				if (a[i] < a[j]) {
					temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		}
		return a;
	}

}


 

+ Recent posts