'merge sort'에 해당되는 글 1건

  1. 2015.10.30 합병 정렬(Merge Sort)

간단한 합병정렬이다.

void merge(int a[], int b[], int low, int mid, int high){
 int i, l, m, k;
 l = low;
 m = mid + 1;
 k = low;
 while (l <= mid && m <= high){
  if (a[l] <= a[m]){
   b[k++] = a[l++];
  }
  else
   b[k++] = a[m++];
 }
 if (l>mid)
  for (i = m; i <= high; i++)
   b[k++] = a[i];
 else
  for (i = l; i <= mid; i++)
   b[k++] = a[i];
}

void merge_sort(int a[], int b[], int low, int high){
 int mid;
 if (low<high){
  mid = (low + high) / 2;
  merge_sort(a, sorted, low, mid);
  merge_sort(a, sorted, mid + 1, high);
  merge(a, sorted, low, mid, high);
 }
}

'알고리즘' 카테고리의 다른 글

소수 더하기 O(n) 최적화  (0) 2015.10.30
퀵 정렬(Quick Sort)  (0) 2015.10.30
삽입 정렬(Insert Sort)  (0) 2015.10.30
선택 정렬(Select Sort)  (0) 2015.10.30
버블 정렬(Bubble Sort)  (0) 2015.10.30
Posted by Lich King
,