/* * CS220_FastSortingAlgorithms_Interface.java * * Created on Sep 14, 2007 * * by Donald Yessick */ /** * CS220_FastSortingAlgorithms_Interface * @author Donald Yessick * */ public interface CS220_FastSortingAlgorithms_Interface { /* * QuickSort Algorithm * partition list into upper and lower partitions such that * for some value p * elements to the right are larger * elements to the left are not larger * repeat this process with the right and left partitions * */ public void quickSort(Comparable[] unsorted, int n); //private void quickSort(Comparable[] unsorted, int start, int end); //private int partition(Comparable[] unsorted, int start, int end); /* * MergeSort Algorithm * split list into two problems * merge the sorted halves * list of 1 cannot be split and is sorted */ public void mergeSort(Comparable[] unsorted, int n); //private void mergeSort(Comparable[] unsorted, int start, int end); //private void merge(Comparable[] unsorted, int start,int join, int end); /* * HeapSortAlgorithm * make list a maxheap * extract max and store it at the end * repeat */ public void heapSort(Comparable[] unsorted, int n); //private void heapify(Comparable[] unsorted, int end); //private void extractMax(Comparable[] Heap, int end); //private void reHeapifyDown(Comparable[] NearHeap, int end); /* * BitSort Algorithm * put into buckets [0-1] by least signififact bit * merge buckets 0-1 * repeat with next least significant bit * merge after most significant digit has been used will be sorted list * assume all numbers are positive and 31 significant bits */ public void bitSort(int[] unsorted, int n); }