private void sort(ObservableArray tab, int lo, int hi)
    {
        if(lo >= hi)
        {
            return;
        }
        int j = partition(tab, lo, hi);
        //Sort left
        sort(tab, lo, j-1);
        //Sort right
        sort(tab,  j+1, hi);
    }