0

Can anyone explain me heap shot with proper code ????

29th Nov 2016, 10:16 AM
Tanmay Agarwal
Tanmay Agarwal - avatar
1 Answer
+ 1
I hope your question is about Heap Sort. Here is an example of heap sort: 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(); } } Hope this helps.
19th Jan 2017, 3:43 PM
Josh Luwang
Josh Luwang - avatar