public int randomizedSelect(int[] a,int begin,int end ,int i){
        if (begin==end)
        {
            return a[begin];
        }
        int q = partition(a, begin, end);
        int k = q-begin+1;
        if (i==k)
        {
            return a[q];
        }else if (i<k) {
            return randomizedSelect(a, begin, q-1, i);
        }else {
            return randomizedSelect(a, q+1, end, i-k);
        }
        
    }