0
我想用C++編寫一個遞歸合併排序程序。問題是,我不知道如何獲得基本情況的想法遞歸地工作。任何人都可以告訴我Merg Function()
,Split Function()
和MergSort()
功能的基本情況。我會感謝你。遞歸合併Sort C++
void Merg(int A[], int s1, int e1, int s2, int e2)
{
int B[8];
int i=0;
while (A[s1] < A[s2])
B[i] = B[s1];
i++;
s1++;
if (s1 == e1)
{
B[i] = A[s2];
i++;
s2++;
}
while (A[s2] < A[s1])
B[i] = B[s2];
i++;
s2++;
if (s2 == e2)
{
B[i] = A[s1];
i++;
s1++;
}
}
void Split(int A[], int s, int e)
{
int mid = (s+e)/2;
if (s < e && mid != 0)
{
Split(A, s, mid);
Split(A, mid+1, e);
}
Merg(A, s, mid, mid+1, e);
}
int main()
{
int A[8] = {10,4,8,12,11,2,7,5};
Split(A, 0, 7);
return 0;
}
有僞代碼[這裏](http://en.wikipedia.org/wiki/Mergesort)。 – user1118321 2012-01-05 18:57:56