1. Program Correctness (75%):

    1. The binarySearch function correctly locates keys that are in the middle of the data set and returns the appropriate index.
    2. The binarySearch function correctly returns -1 if a key is not in the data set
    3. The binarySearch function correctly handles the following boundary condition cases:

      1. The requested key is the first key in the data set
      2. The requested key is the last key in the data set
      3. The requested key is less than any key in the data set
      4. The requested key is greater than any key in the data set

  2. Commenting (10%): See the commenting information on the course's lab web page for advice on how to comment your programs,

  3. Program Style (15%): Are the programs well-organized and do they solve the problem in the most straightforward, efficient way possible?

Grading Guide for Optional Quicksort

  1. Program Correctness (20 points)

    1. The quicksort program correctly sorts an arbitrary array of numbers
    2. The quicksort program correctly handles the following unusual cases:

      1. The array has a single number
      2. The array starts in sorted ascending order
      3. The array starts in sorted descending order

  2. Commenting and Program Organization (5 points): Is the function well commented and well-organized?