Helsinki University of Technology



Sama Suomeksi


Front Page

Overview

Schedule

Lectures

Guides

Topics

Teachers


T-106.290 Ohjelmoinnin laboratoriotyöt

Subject: Array search (2 cr)

The purpose of this assignment is to study the performance of search algorithms on sorted arrays. The algorithms to be studied are:

  • Linear scan over the array
  • Binary search
  • Interpolation search
  • Fibonaccian search

Investigate the following issues:

  • Size of the array (from a few entries to millions of entries)
  • Distribution of the keys in the array (even vs. lumpy distributions)
  • If none of the algorithms is always the best, suggest and benchmark a combination of these algorithms.

Investigate also at least two of the following issues:

  • Effect of key type to the results, i.e. integer/floating point number/character strings of varying length.
  • By default all your search routines should be implemented without recursion, but investigate how much recursion would slow them down.
  • Run your tests in three significantly different machines.
Agree on which two above issues you study with your group assistant in the first meeting.

Some references

  • Aho, Hopcroft, Ullman, Data Structures and Algorithms
  • Aho, Hopcorft, Ullman, The Design and Analysis of Computer Algorithms
  • Cormen, Leiserson, Rivest:  Introduction to algorithms
  • Horowitz, Sahni:  Fundamentals of Data Structures in Pascal
  • Kingston, Algorithms and Data Structures
  • Knuth: The Art of Computer Programming, volume 3 / Sorting and Searching
  • Sedgewick:  Algorithms / Algorithms in C / Algorithms in C++
  • Weiss:  Data Structures and Algorithm Analysis (various versions for Pascal, C, C++ and Java)
  • Wirth, Algorithms + Data Structures = Programs


Course email: cessu@cs.hut.fi
Kurssin newsgroup: opinnot.tik.labratyot
This page has been last updated on 2005-01-11.