All pastes #417046 Raw Edit

Miscellany

public text v1 · immutable
#417046 ·published 2007-03-30 18:13 UTC
rendered paste body
import java.lang.*;

public class QuickSortInsertion
{
    public void QuickSortInsertion(int array[])
    {
        quickSortRec(array, 0, (int)array.length-1);
    }

    private void quickSortRec(int array[], int left, int right)
    {
        if(right-left < 10) {
            insertionSort(array, left, right);
        } else {
            int pivotIndex = partition(array, left, right);
            quickSortRec(array, left, pivotIndex-1);
            quickSortRec(array, pivotIndex+1, right);
        }
    }

    private int partition(int array[], int left, int right)
    {
        int pivot = array[left];
        int limit = left;
        for (int i=left+1; i <= right; i++) {
            if (array[i] < pivot) {
                limit++;
                swap(array, limit, i);
            }
        }
        swap(array, left, limit);
        return limit;
    }

    private void insert(int[] a, int left, int right, int value) {
        int i = right-1;
        while (i >= left && a[i] > value) {
            a[i+1] = a[i];
            i--;
        }
        a[i+1] = value;
    }

    private void insertionSort(int[] a, int left, int right) {
        int i = left;
        while (i < right) {
            insert(a, left, right, a[i]);
            i++;
            System.out.println(right);
        }
    }

    private void swap(int array[], int index1, int index2)
    {
        int temp = array[index1];
        array[index1] = array[index2];
        array[index2] = temp;
    }

    public void main(String[] args){
       int qsa[] = new int[] {5,3,7,8,5,3};
       QuickSortInsertion qs = new QuickSortInsertion(qsa);
    }
}