快速排序

本文介绍了一种使用递归思想实现的快速排序算法,并通过具体的C语言代码示例展示了整个排序过程。递归方法简化了排序流程,只需关注首次排序的正确性,后续排序将自动完成。

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

运用了递归的思想

递归就是只管第一次,因为第一次结果都是对的,所以接下来的结果都是正确的,只需要等待递归返回最终结果就行。

int a[10] = {0,6,4,7,9,3,2,5,8,1};
- (void)fast{


    [self quciksort:1 and:9];

    for (int i =1; i<=9; i++) {
        printf("%d",a[i]);
    }

}

- (void)quciksort:(int)left and:(int)right{

    int i,j,t,temp;

    if (left>right)
       return;
    temp =a[left];//temp中存的就是基准数
    i=left;
    j=right;
    while (i!=j)
    {
        while (a[j]>=temp && i<j)//从右边开始找
            j--;
        while (a[i]<=temp && i<j)//再找左边的
            i++;
        if (i<j) {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }//交换两个数在数组中的位置
    }
    a[left] =a[i];//基准数字归位置
    a[i] = temp;

    [self quciksort:left and:i-1];//继续处理右边的,递归
    [self quciksort:i+1 and:right];//继续处理左边的。递归
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值