快速排序

//快排
public static void quick(int[]a,int left,int right) {
    if(left>right) {
        return;
    }
    int t = a[left];
    int L = left; //左哨兵,找比基准数大的
    int R =right; //右哨兵,找比基准数小的
    while(L!=R) {
        while(L<R&&a[R]>=t) {
            R--;
        }
        while(L<R&&a[L]<=t) {
            L++;
        }
        //左右交换位置
        int x = a[R];
        a[R]=a[L];
        a[L]=x;
    }
    a[left]=a[L];
    a[L]=t;
    System.out.println(Arrays.toString(a));
    quick(a,left,L-1);
    quick(a,L+1,right);
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务