The assignment is split in two parts, first I have to rewrite all my sorts that I've done in past assignments but I have to implement an interface on each sort.
So far I have finished most of the sorts and implement the interface on each. Here is my Quick Sort for reference:
class QuickSort : ISorter
{
    public void sort(int[] numbers, int low, int high)
    {
        if (low < high)
        {
            int pivot_location = partition(numbers, low, high);
            sort(numbers, low, pivot_location);
            sort(numbers, pivot_location + 1, high);
        }
    }
    private static int partition(int[] numbers, int low, int high)
    {
        int pivot = numbers[low];
        int wall = low;
        for (int i = low + 1; i < high; i++)
        {
            if (numbers[i] < pivot)
            {
                wall++;
                swap_numbers(numbers, i, wall);
            }
        }
        swap_numbers(numbers, low, wall);
        return wall;
    }
    private static void swap_numbers(int[] numbers, int index1, int index2)
    {
        int temp = numbers[index1];
        numbers[index1] = numbers[index2];
        numbers[index2] = temp;
    }
  
}
I will try to finish this part of the assignment as soon as possible so I can move to the next part. That's all for now, thanks for reading!
 
No comments:
Post a Comment