병합정렬(합병정렬) mergesort 여러 소스 코드들 참조.
재귀의 형태로 분할시키고 merge와 sort를 나누는 방식이 보통이다. [code cpp:nocontrols] void MergeSort(int iArray[], int iTemp[], int iStart, int iEnd) { if (iStart < iEnd) { int iMid = (iStart + iEnd)/2; MergeSort(iArray, iTemp, iStart, iMid); MergeSort(iArray, iTemp, iMid + 1, iEnd); Merge(iArray, iTemp, iStart, iMid, iEnd); } } void Merge(int iArray[], int iTemp[], int iLow, int iMid, int iHigh) { int h = iLow, i = i..