티스토리 뷰

1. 버블 정렬

- 인근 원소를 하나씩 비교하여 최대값 혹은 최소값이 맨 끝으로 이동

- 거품이 올라오는 것 처럼, 하나 씩 정렬 됨.

- 처음 전체 원소를 비교하는데 (n-1) 번 비교연산, 두번째는 (n-2), 세번째, (n-3)...

- (n-1)+(n-2)+(n-3)+...+2+1 = n(n-1)/2

- O(n^2)


public class BubbleSort {
	public static void main(String[] args) {
		int[] data = { 12, 10, 8, 6, 3};
		
		for (int i = 0; i < data.length - 1; i++) {
			for (int k = 0; k < data.length - 1 - i; k++) {
				if (data[k] > data[k+1]) {
					int temp = data[k]; 
					data[k] = data[k+1];
					data[k+1] = temp;
				}
			}
		}
		
		for (int i = 0; i < data.length; i++) {
			System.out.print(data[i] +", ");    // 3, 6, 8, 10, 12,	
		}
	}
}


2. 선택 정렬

- 일단 첫번째부터 끝까지 비교하며 가장 작은게 1번째 이동, 2번째부터 끝까지 비교하여 가장 작은게 2번째로 이동, .. (n-1)번 반복

- 최선일 경우 비교회수 : n-1

- 최악일 경우 비교회수 : n(n-1)/2

- O(n^2)




public class SelectionSort{
	public static void main(String[] args) {
		int[] data = {12, 10, 8, 6, 3};
		
		for (int i = 0; i < data.length - 1; i++) {
			for (int k = i; k < data.length - 1; k++) {
				if (data[i] > data[k+1]) {
					int temp = data[i]; 
					data[i] = data[k+1];
					data[k+1] = temp;
				}				
			}
		}
		
		for (int i = 0; i < data.length; i++) {
			System.out.print(data[i] +", ");			
		}
	}
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
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
글 보관함