题解 | #寻找第K大#快速排序

寻找第K大

http://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf

import java.util.*;

public class Solution {
    public int findKth(int[] a, int n, int K) {
        // write code here
        quickSort(a,0,n-1);
        return a[n-K];
    }
    public void quickSort(int[] a,int begin,int end){
        if(begin>=end) return;
        int pivot=a[begin];
        int i=begin,j=end;
        while(i!=j){
            //从右向左找小于pivot的
            while(i<j&&a[j]>pivot){
                j--;
            }
            if(i<j){
                a[i++]=a[j];
            }
            //从左向右找大于pivot的
            while(i<j&&a[i]<pivot){
                i++;
            }
            if(i<j){
                a[j--]=a[i];
            }
        }
        a[i]=pivot;
        quickSort(a,begin,i-1);
        quickSort(a,i+1,end);
    }
}
全部评论

相关推荐

FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务