CS 112 - Lab 7
Section 1: Introduction
The goal of this lab is to:
- implement three sorting routines
If you have not already done so, create a directory for this lab and
copy the lab 7 files into it. If you start off in your home directory you
can do the following:
cp ~cs112/lab7/* .
Section 2: Topics for Lecture
- Problem specifications
- Hints on how to approach this problem
- Explanation of the qsort( ) function available in UNIX
Section 3: Description of Assignment
You are to implement a program that creates three contiguous arrays of size
MAXSIZE containing random integers. Each array will be sorted
using one of these three different sorting routines.
quicksort (using the UNIX function qsort( ))
insertion sort (using modified code from the textbook)
selection sort (using modified code from the textbook)
You will time (using the function timer( ) from Lab 3) each sorting
routine and display the results at the end of the program.
You will be provided the following files:
sort.h (containing all prototypes, typedefs, and #defines)
Section 4: Hints
For detailed information on
the UNIX utility qsort, type man qsort at the
UNIX prompt. The manpage will explain how to call this function and what
parameters it expects.
You may access the
C code from text link on the CS112 home page to extract
the code for insertion and selection sorts (might save you some time
typing). Follow the Chapter 7 link on that webpage.
This code will need to be modified for this lab, but
the changes are minor. You should carefully design your changes before
editing any code.
Note that in the book, the functions use three types (List,
Position, and ListEntry) which in our case are all going to be
int's, so we have typedef'd them in sort.h to avoid a
significant departure from the book examples.
Section 5: Handing in your C code and answers
When you have completed this lab assignment, you should have the following program(s) in your
main.c (containing the function main( ))
sort.c (containing all sorting functions)
sort.h (containing all typedefs, prototypes, etc.)
Then, to submit your program(s) for grading, issue the command
at your UNIX prompt. This utility program will copy your programs for grading and an electronic
mail message will be sent to you to acknowledge your submission. You may check the status of
your submission at any time by typing the command
at your UNIX prompt. You will automatically receive an electronic mail message confirming the
status of your lab submission.
You should also answer the questions below and submit them in hardcopy to the TAs at the
beginning of lab on April 4 (no late submissions accepted).
For credit on this lab, your software must be received by midnight
April 3 and your answers
to the lab questions must be received at the beginning of lab on
Friday, April 4.
Note: Always bring your ID with you to lab.