2011.02.26
Merge Sort (합병 정렬)
알고리즘 Array를 반씩 쪼갠다. 한번 쪼개면 두개의 큰 덩어리가 나올 것이다. 이렇게 나온 덩어리를 또 다시 쪼갠다. 이렇게 덩어리를 계속 쪼개다 보면, 결국 한 개의 원소가 하나의 덩어리가 된다. 이 상태에서 다시 덩어리를 뭉치는데, 그냥 뭉치는 것이 아니라 각각의 원소를 비교해 가면서 원소를 차례로 배열한다. 이런 식으로 덩어리를 계속 뭉쳐가다 보면 원래의 Array가 정렬된다. 이것이 합병 정렬의 기본 아이디어다. 코드 #include #define LEN 9 void merge_sort(int num[],int start, int end); void merge(int num[], int start, int mid, int end); void tracer(int num[],int len); in..