KEMBAR78
Heap sort | PPT
HEAP SORT
HEAP
Heaps are based on the notion of
complete tree.
A Binary Tree has the Heap Property iff,
   * It is empty
   * The key in the root is larger
     than that in either and both
     subtrees have the Heap property.
HEAP SORT


The Heap is used in an
elegant sorting algorithm
called Heap Sort.
97


                                               88
                                                                                            95


                            66                                55                  95                   48


         66                       35           48                 55         62         77        25             38



                                                                  Heap
    18            40        30

                                       Sequential Representation
97       88   95       66    55       95   48       66       35    48    55       62   77    25   38   18   40    30

1        2    3        4    5     6        7    8        9    10 11 12 13 14 15 16 17 18
Types Of Heap
 Min Heap :- If the value at the node
 N, is less than or equal to the value at
 each of the children of N, then Heap is
 called a MIN-HEAP.
     In General, a Heap represents a
 table of N elements or records
 satisfying the following property;
 Nj ≥ Ni for   i≤j≤n      & i = [j/2]
Max Heap :- If the value at the node
N, is greater than or equal to the value
at each of the children of N, then Heap
is called a MAX-HEAP.
    In General, a Heap represents a
table of N elements or records
satisfying the following property;
Nj ≤ Ni   for   i≤j≤n    & i = [j/2]
6


             2
                                               10


    11               12               13                14


                 MIN-
                 HEAP
                          9


         8
                                           7


4                3                5                 6


                 MAX-HEAP
Two main steps for heap Sort
are:

   Creation of Heap
   Processing of Heap
Creation of the Heap
 To put the largest element on the top
 In each step size of the Heap increase.

    Put the elements in heap as they occur in sequential
  order i.e. parent then left child and than right child.
    Each time (of inserting a new node/child) compare it
  with its Parent Node;
        Is?      Child Node (Left child or Right child) is
  less than or equal or greater than or equal
  to that of parent node….
          If it is greater than its successor than
  interchange them.
Processing of the Heap
The last element of last level should be
  replaced by Top element of the list.
In this process the largest element will be at last
  place
List will be sorted out in increasing order from
  Root to Leaf.
After replacing the Top element Creation of
  the Heap takes place.
In each step size of Heap decreased.
Algo for Creation of Heap
INSHEAP(TREE, N, ITEM)
   Heap H with N elements is stored in the array Tree,
   and an ITEM of information is given. This procedure
   inserts ITEM as a new element of H. PTR gives the
   location of ITEM as it rise in the tree, and PAR
   denotes the location of parents of ITEM.

1. [Add new node to H and initialize PTR]
   Set N := N+1 and PTR := N
2. [Find location to insert ITEM]
   Repeat steps 3 to 6 while PTR < 1
3. Set PAR := [PTR/2]. [Location of parent node]
4. If ITEM <= TREE[PAR], then:
       Set TREE[PTR] := ITEM, and Return.
     [END of IF structure]
5.   Set TREE[PTR] := TREE[PAR]. [Moves node
     down]
6.   Set PTR := PAR. [Updates PTR].
     [End of step 2 loop]
7.   [Assign ITEM as the root of H.]
8.   Set TREE[1] := ITEM.
9.   Return.
Algo for Processing of Heap
DELHEAP(TREE, N, ITEM)
  A Heap H with N elements is stored in the array
  TREE. This procedure assigns the root TREE[1] of H
  to the variable ITEM and then reheaps the remaining
  elements. The variables LAST saves the value of the
  original Last node of H. The pointers PTR, LEFT and
  RIGHT give the locations of LAST and its left and
  right children as LAST sinks in the tree.

1. Set ITEM := TREE[1]. [Removes root of H.]
2. Set LAST := TREE[N] and N := N-1
                  [Removes last node of H.]
3. Set PTR := 1, LEFT := 2
     and RIGHT := 3. [Initializes pointers.]
4.   Repeat Steps 5 to 7 while RIGHT <= N:
5.     If LAST >= TREE[LEFT] and
          LAST >= TREE[RIGHT], then:
               Set TREE[PTR] := LAST and Return.
        [End of IF Structure.]
6.     If TREE[RIGHT] <= TREE[LEFT], then:
           Set TREE[PTR] := TREE[LEFT] and
                       PTR := LEFT.
       Else:
           Set TREE[PTR] := TREE[RIGHT] and
                       PTR := RIGHT.
        [End of IF structure.]
7.   Set    LEFT := 2 * PTR and
          RIGHT := LEFT+1.
    [End of Step 4 loop.]
8. If    LEFT = N         and
    If   LAST < TREE[LEFT],     then:
               Set PTR := LEFT.
9. Set TREE[PTR] := LAST.
10. Return.
Algo for HEAP SORT
HEAPSORT(A, N)
    An array A with N elements is given. This algorithm sorts the
    elements of A.

1.   [Build a Heap H, using Procedure INSHEAP(TREE, N,
     ITEM) ]
     Repeat for J = 1 to N-1:
                Call INSHEAP(A, J, A[J+1]).
     [End of loop]
2.   [Sort A by repeatedly deleting the root of H, using procedure
      DELHEAP(TREE, N, ITEM) ]
     Repeat while N > 1:
       (a)      Call DELHEAP(A, N, ITEM).
       (b)      Set A[N+1] := ITEM.
     [End of loop.]
3.   Exit.

Heap sort

  • 1.
  • 2.
    HEAP Heaps are basedon the notion of complete tree. A Binary Tree has the Heap Property iff, * It is empty * The key in the root is larger than that in either and both subtrees have the Heap property.
  • 3.
    HEAP SORT The Heapis used in an elegant sorting algorithm called Heap Sort.
  • 4.
    97 88 95 66 55 95 48 66 35 48 55 62 77 25 38 Heap 18 40 30 Sequential Representation 97 88 95 66 55 95 48 66 35 48 55 62 77 25 38 18 40 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
  • 5.
    Types Of Heap Min Heap :- If the value at the node N, is less than or equal to the value at each of the children of N, then Heap is called a MIN-HEAP. In General, a Heap represents a table of N elements or records satisfying the following property; Nj ≥ Ni for i≤j≤n & i = [j/2]
  • 6.
    Max Heap :-If the value at the node N, is greater than or equal to the value at each of the children of N, then Heap is called a MAX-HEAP. In General, a Heap represents a table of N elements or records satisfying the following property; Nj ≤ Ni for i≤j≤n & i = [j/2]
  • 7.
    6 2 10 11 12 13 14 MIN- HEAP 9 8 7 4 3 5 6 MAX-HEAP
  • 8.
    Two main stepsfor heap Sort are: Creation of Heap Processing of Heap
  • 9.
    Creation of theHeap To put the largest element on the top In each step size of the Heap increase. Put the elements in heap as they occur in sequential order i.e. parent then left child and than right child. Each time (of inserting a new node/child) compare it with its Parent Node; Is? Child Node (Left child or Right child) is less than or equal or greater than or equal to that of parent node…. If it is greater than its successor than interchange them.
  • 10.
    Processing of theHeap The last element of last level should be replaced by Top element of the list. In this process the largest element will be at last place List will be sorted out in increasing order from Root to Leaf. After replacing the Top element Creation of the Heap takes place. In each step size of Heap decreased.
  • 11.
    Algo for Creationof Heap INSHEAP(TREE, N, ITEM) Heap H with N elements is stored in the array Tree, and an ITEM of information is given. This procedure inserts ITEM as a new element of H. PTR gives the location of ITEM as it rise in the tree, and PAR denotes the location of parents of ITEM. 1. [Add new node to H and initialize PTR] Set N := N+1 and PTR := N 2. [Find location to insert ITEM] Repeat steps 3 to 6 while PTR < 1
  • 12.
    3. Set PAR:= [PTR/2]. [Location of parent node] 4. If ITEM <= TREE[PAR], then: Set TREE[PTR] := ITEM, and Return. [END of IF structure] 5. Set TREE[PTR] := TREE[PAR]. [Moves node down] 6. Set PTR := PAR. [Updates PTR]. [End of step 2 loop] 7. [Assign ITEM as the root of H.] 8. Set TREE[1] := ITEM. 9. Return.
  • 13.
    Algo for Processingof Heap DELHEAP(TREE, N, ITEM) A Heap H with N elements is stored in the array TREE. This procedure assigns the root TREE[1] of H to the variable ITEM and then reheaps the remaining elements. The variables LAST saves the value of the original Last node of H. The pointers PTR, LEFT and RIGHT give the locations of LAST and its left and right children as LAST sinks in the tree. 1. Set ITEM := TREE[1]. [Removes root of H.] 2. Set LAST := TREE[N] and N := N-1 [Removes last node of H.]
  • 14.
    3. Set PTR:= 1, LEFT := 2 and RIGHT := 3. [Initializes pointers.] 4. Repeat Steps 5 to 7 while RIGHT <= N: 5. If LAST >= TREE[LEFT] and LAST >= TREE[RIGHT], then: Set TREE[PTR] := LAST and Return. [End of IF Structure.] 6. If TREE[RIGHT] <= TREE[LEFT], then: Set TREE[PTR] := TREE[LEFT] and PTR := LEFT. Else: Set TREE[PTR] := TREE[RIGHT] and PTR := RIGHT. [End of IF structure.]
  • 15.
    7. Set LEFT := 2 * PTR and RIGHT := LEFT+1. [End of Step 4 loop.] 8. If LEFT = N and If LAST < TREE[LEFT], then: Set PTR := LEFT. 9. Set TREE[PTR] := LAST. 10. Return.
  • 16.
    Algo for HEAPSORT HEAPSORT(A, N) An array A with N elements is given. This algorithm sorts the elements of A. 1. [Build a Heap H, using Procedure INSHEAP(TREE, N, ITEM) ] Repeat for J = 1 to N-1: Call INSHEAP(A, J, A[J+1]). [End of loop] 2. [Sort A by repeatedly deleting the root of H, using procedure DELHEAP(TREE, N, ITEM) ] Repeat while N > 1: (a) Call DELHEAP(A, N, ITEM). (b) Set A[N+1] := ITEM. [End of loop.] 3. Exit.