-
버블 정렬프로그래밍/알고리즘 2018. 6. 5. 20:22
지난 시간에는 선택 정렬에 대해서 알아봤습니다!!
그렇다면 이번에는 또 다른 정렬 방법중 하나인 버블 정렬에 대하여 알아볼 계획입니다
먼저 버블 정렬이란?
출처 : http://wonjayk.tistory.com/219
위의 사진과 같이 반복하는 정렬 방법입니다!!
바로 옆의 Index와 값의 교환을 N번 까지 반복하는 간단한 정렬입니다
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr = new int[scanner.nextInt()]; for (int i = 0; i < arr.length; i++) { System.out.print(i + 1 + "번째 값 입력 : "); arr[i] = scanner.nextInt(); } for (int i = 1; i < arr.length; i++) { for (int j = 0; j < arr.length - i; j++) { if (arr[j + 1] < arr[j]) { int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } System.out.println(Arrays.toString(arr)); }
위의 코드의 순서로 진행됩니다
첫번째 반복문에서는 Index의 초기값을 1로 설정한 이유는 두번째 반복문 부터 정렬이 완료된만큼 반복의 횟수를 줄여야하기 때문입니다.
전처럼 시간 복잡도를 보면 O(n^2)로 선택정렬과 같지만 버블정렬은 교환와 반복횟수가 많은 비효율적인 정렬 방식입니다.
그렇다면 어떻게 해야 좋은 정렬인거야??
라고 생각하실수 있으신데 그렇기에 다음부터는 분할과 정복을 이용한 정렬방식인 퀵정렬 (Quick Sort)에대하여 알아보겠습니다
'프로그래밍 > 알고리즘' 카테고리의 다른 글
퀵 정렬 (Quick 정렬) (1) 2018.06.19 해시테이블이란? (0) 2018.06.17 선택 정렬 (0) 2018.06.04 경우의 수 출력하기 (0) 2018.05.22 KiwiJuice (0) 2018.05.06