快速排序

继冒泡排序的快速排序[手动滑稽]

冒泡排序:见我另一篇文章。

上代码

public class 快排 {
    static  int a [] = {6,1,2,5,4,3,9,7,10,8};
    public static void quicksort(int left,int right){
        if(left > right){                    //如果左边大于右边结束
            return ;
        }
        int i = left;
        int j = right;
        int temp = a[left];                  //设基准数为左边第一个
        while(i != j){
            while(j > i && a[j] <= temp){    //首先从右边开始查找比基准数小的数
                j--;                       
            }
            while(j > i && a[i] >= temp){    //从左边找到比基准数大的数
                i++;
            }
            if(i != j){                      //左右(i和j)不相等后-
                int num = a[i];              //-将找的两个数字交换
                a[i] = a[j];
                a[j] = num;
            }
        }
        a[left] = a[i];                      //将基准数与中间的数字进行交换(注意不要-
        a[i] = temp;                         //-把这两个值附乱了)
        quicksort(left,i - 1);               //以i(或j)为分割,分成两份进行递归
        quicksort(i + 1,right);              //类似二分法
    }
    public static void main(String [] args){
        quicksort(0,9);
        for(int d = 0;d < 10;d++){
            System.out.print(a[d] + " ");
        }
    }
}

原理:

最后我推荐  啊哈!算法  这本书需要电子版的私我哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值