1. 程式人生 > >七種排序演算法的簡單分析與實現

七種排序演算法的簡單分析與實現

{
    
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);
}