c#,heap,sort

Yavuz 8/11/2016 0

This Code Shows How to Demonstrate Heap Sort. Here it first removes the topmost item (the largest) and replace it with the rightmost leaf. The topmost item is stored in an array and Re-establish the heap.this is done until there are no more items left in the heap.

C#
using System;
class heap
{
    int[] r = { 2,5,1,10,6,9,3,7,4,8};
    public void hsort()
    {
        int i, t;
        for (i = 5; i >= 0; i--)
        {
            adjust(i, 9);
        }
        for (i = 8; i >= 0; i--)
        {
            t = r[i   1];
            r[i   1] = r[0];
            r[0] = t;
            adjust(0, i);
        }
    }
    private void adjust(int i, int n)
    {
        int t, j;
        try
        {
            t = r[i];
            j = 2 * i;
            while (j <= n)
            {
                if (j < n && r[j] < r[j   1])
                    j  ;
                if (t >=r[j])
                    break;
                r[j / 2] = r[j];
                j *= 2;
            }
            r[j / 2] = t;
        }
        catch (IndexOutOfRangeException e)
        {
            Console.WriteLine("Array Out of Bounds ", e);
        }
    }
    public void print()
    {
        for (int i = 0; i < 10; i  )
        {
            Console.WriteLine("{0}", r[i]);
        }
 
    }
    public static void Main()
    {
        heap obj = new heap();
        Console.WriteLine("Elements Before sorting : ");
        obj.print();
        obj.hsort();
        Console.WriteLine("Elements After sorting : ");
        obj.print();
        Console.Read();
    }
} 


/*

Here is the output of the C# Program: Elements Before Sorting : 2 5 1 10 6 9 3 7 4 8 Elements After Sorting : 1 2 3 4 5 6 7 8 9 10

*/

Report Bug

Please Login to Report Bug

Reported Bugs

Comments

Please Login to Comment

Comments