Java2 병합 정렬(Merge Sort) 병합 정렬이란? 존 폰 노이만이 제안한 방법 분할 정복 알고리즘의 하나 병합 정렬 알고리즘 개념 하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체 정렬된 리스트가 되게하는 방법 분할(Divide) : 입력 배열을 같은 크기의 2개의 부분 배열로 분할 정복(Conquer) : 부분배열을 정렬한다. 부분 배열의 크기가 크다면 순환 호출을 이용하여 다시 분할 정복을 한다. 결합(Combine) : 정렬된 부분 배열들을 하나의 배열에 합병 병합 정렬 과정 코드 public class MergeSort { public static void main(String[] args) { int[] arr = { 69, 10, 30, 2, 16, .. 2019. 8. 14. 선택정렬(SelectionSort) 선택정렬(SelectionSort) 선택정렬을 배열을 한바퀴 돌아서 최소/최대 값을 찾은 후(선택) 스왑을 통해 오름/내림차순으로 정렬한다. 선택정렬 - 오름차순 // 오름차순 정렬 public static void selectionSort_asc(int[] array) { int min; for(int i=0; i < array.length-1 ; i++) { min = i; for(int j=i+1; j < array.length; j++) { if(array[j] < array[min]) { min = j; } } int tmp = array[i]; array[i] = array[min]; array[min] = tmp; } } 선택정렬 - 내림차순 // 내림차순 정렬 public static vo.. 2019. 8. 14. 이전 1 다음