How can I structure this quicksort to stop quicksorting at a specific index value and start selection sorting?

I have a quicksort that works, and a selection sort that also works- I want to sort an int[] of random ints with quicksort up until the array.length = 1 and then for that last element call selection sort. I know I need to have a conditional that checks the array.length and when length = 1 then, return selectionSort() Im not sure how to structure it in the recursive calls within quickSort(). Here are my two sorting methods:

QuickSort:

public void quickSort(int array[], int start, int end) {
    int i = start; // index val of left-to-right scan
    int k = end; // index val of right-to-left scan

    if (end - start >= 1){
        PIVOT = array[start]; 
        while (k > i){
            while (array[i] <= PIVOT && i <= end && k > i)
                i++; 
            while (array[k] > PIVOT && k >= start && k >= i)
                k--;
            if (k > i) 
                swap(array, i, k); 
        }
        swap(array, start, k); 
        quickSort(array, start, k - 1); 
        System.out.println(k);
        quickSort(array, k + 1, end); 

    }
    return;
}

Selection Sort:

public void selectionSort(int[] nums) {
    //nums[0] = array[0];
    System.out.println(nums.length);
    for (int i = 0; i < (nums.length - 1); i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[i] > nums[j]) {
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
    }
}

Answers


You're already almost doing it. With this line, end - start you're getting the length. If that length is less than your SelectionSortThreshold, run insertion sort only on the current length. This means modifying your selectionSort routine to accept a start and end parameter so that you can selection sort only a small portion of the array.


Need Your Help

Understanding uniform random number generation

algorithm random

I was reading a question about generating rand7() from rand5(), and I still don't quite seem to understand it. The suggested solution is shown here:

grouped bar graph example using core plot iphone?

iphone xcode graph core-plot

I want to know how to create grouped bar graph? I tried but I got only single bar graph.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.