快速排序

该博客演示了一个C语言实现的快速排序算法。通过生成随机数填充数组,然后调用quicksort函数进行排序,最后输出排序后的结果,展示了快速排序在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

void quicksort(int *arr,unsigned int cont);

int main(int argc,const char *argv[])
{
    int arr[32] = {0};
    int i = 0;
    for(;i<32;i++){
        arr[i] = rand()%100;
        printf("%d ",arr[i]);
    }
    printf("\narr:\n");

    quicksort(arr,sizeof(arr)/4);

    for(i = 0;i<32 ; i++){
        printf("%d ",arr[i]);
    }

    printf("\n");
    return 0;
}

void quicksort(int *arr ,unsigned int cont)
{
    if(cont < 2) return;
    int itmp = arr[0];
    int ileft = 0;
    int iright = cont;
    int imoving = 2;

    while(ileft < iright){
        if(imoving == 2){
            if(arr[iright] >= itmp){
                iright--;
                continue;
            }
            arr[ileft] = arr[iright];
            ileft++;
            imoving=1;
            continue;
        }
        if(imoving==1){
            if(arr[ileft] <= itmp){
                ileft++;
                continue;
            }
            arr[iright] = arr[ileft];
            iright--;
            imoving=2;
            continue;
        }
    }

    arr[ileft] = itmp;
    /*
    * if(ileft < 10)
    * //insort();
    * else
    * quicksort();
    * */
    quicksort(arr,ileft);
    quicksort(arr+ileft,cont-ileft-1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值