CSC 216/s08/eschew disenchantment: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 25: Line 25:
     Split m in half
     Split m in half
     Call mergeSort on each half
     Call mergeSort on each half
     Merge the two halves after they are sorted and returned
     Merge the two halves after they are sorted and returned (iterative merge of two ordered arrays)
     Return the array
     Return the array
}
}

Revision as of 14:35, 27 March 2008

Formatting Resources

Formatting Help Guide from MetaWiki

The Hierarchical Merge Sort

The problem

In this exercise, we want to teach students the mechanics of a merge sort algorithm.

Participants and props

Seven students will participate in the exercise. They will need numbered notecards, scotch tape, and a series of hats. There should be seven hats as follows: One master hat, two delegate hats, and four peon hats.

The script

Setup

  1. There should be a pseudocode description of the merge sort algorithm on a large display.
  2. The numbered notecards must be taped together in a randomly ordered line.
Pseudo Code

public int[] mergeSort(int[] m) {

    if (m.length == 1) Return m
    if (m.length == 2) Sort m, then return m
    Split m in half
    Call mergeSort on each half
    Merge the two halves after they are sorted and returned (iterative merge of two ordered arrays)
    Return the array

}

Activity

First, the seven hats need to be assigned to the seven students. Then the student wearing the king hat should perform as though he is the initial call to mergeSort(). The king should use his delegates to handle his recursive mergeSort calls. The delegates should use their peons to handle their own mergeSort() calls.