归并算法稳定性求解
初始序列{19 26 52 97}{8 49 66}
一次归并
while((begin1 <= end1)&&( begin2 <= end2))
{
if(array[begin1] < array[begin2])
{ temp[k] = array[begin1];
begin1++;
}
else { temp[k] = array[begin2];
begin2++;
}
k++;
}
排序后{8 19 26 49 52 66 97}
如果将8换成19
{19 26 52 97}{19* 49 66}
因为
array[begin1] = array[begin2]
即19=19*
执行 else
排序后应为
{19* 19 26 49 52 66 97}
算法不稳定
哪里出错了?