快速排序

int Random(int start,int end)  

{  

    int t;  

    srand((unsigned  int )time(NULL));   

    while(true)  

    {  

        t=rand()%(end+1);  

        if(t>=start)  

            return t;  

    }  

}

int findPartition(int aLow,int aHight)

{

    char x;

    //srand((unsigned  int )time(0));

    //int randIndex = aLow+rand()%(aHight-aLow);

    

//    int randIndex = Random(aLow,aHight);

//    x = temp[randIndex];

//    temp[randIndex] = temp[aHight];

//    temp[aHight] = x;

    int par = temp[aHight];

    int i = aLow-1;

    

    for (int j = aLow; j < aHight;++j) 

    {

        if (par >= temp[j]) 

        {

            ++i;

            x = temp[i];

            temp[i] = temp[j];

            temp[j] = x;

        }

    }

    

    x = temp[i+1];

    temp[i+1] = temp[aHight];

    temp[aHight] = x;

    return i+1;

}

void quickSort(int aLow,int aLen)

{

    if (aLow < aLen) 

    {

        int privote = findPartition(aLow,aLen); 

        quickSort(aLow,privote-1);

        quickSort(privote+1,aLen);

    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值