七種排序演算法的簡單分析與實現
阿新 • • 發佈:2018-12-27
{
int nFirst = nLow;
int nMid = (nLow + nHigh) /2;
int nSecond = nMid +1;
int* p = (int*)malloc(sizeof(int) * (nHigh - nLow +1));
int nIndex =0;
while(nFirst <= nMid && nSecond <= nHigh)
{
if (nArray[nFirst] > nArray[nSecond])
{
p[nIndex] = nArray[nSecond++];
}
else
{
p[nIndex] = nArray[nFirst++];
}
++nIndex;
}
while (nFirst <= nMid)
{
p[nIndex++] = nArray[nFirst++];
}
while (nSecond <= nHigh)
{
p[nIndex++] = nArray[nSecond++];
}
for (int i =0; i <= nIndex && nLow <= nHigh;)
{
nArray[nLow++] = p[i++];
}
free(p);
}
int nFirst = nLow;
int nMid = (nLow + nHigh) /2;
int nSecond = nMid +1;
int* p = (int*)malloc(sizeof(int) * (nHigh - nLow +1));
int nIndex =0;
while(nFirst <= nMid && nSecond <= nHigh)
{
if (nArray[nFirst] > nArray[nSecond])
{
p[nIndex]
}
else
{
p[nIndex] = nArray[nFirst++];
}
++nIndex;
}
while (nFirst <= nMid)
{
p[nIndex++] = nArray[nFirst++];
}
while (nSecond <= nHigh)
{
p[nIndex++] = nArray[nSecond++];
}
for (int
{
nArray[nLow++] = p[i++];
}
free(p);
}