Posts

Showing posts from August, 2012

Hash-based Search

An example of a hash-based search, although using dictionaries.  The code is designed to manage lists of Person objects, with unique Id's as the key value, with a rudimentary hash function to assign to various lists.

Salient Characteristic(s)
Useful for managing large unsorted listsDivides the items into smaller hash-based buckets (divide and conquer)Generally excellent performanceSensitive to the choice of hash function and data structures chosenNote
The Id key is not rigorous enough to guarantee uniqueness, and a better key might need to be selected, e.g., SSN, to prevent the same person being entered twice.Code

using System;
using System.Collections.Generic;

namespace Algorithms
{
    //Example object to add and find in Hash Search example
    public class Person
    {
        private int _Id;
        public int Id 
        {
            get { return _Id; }
            set { _Id = value; } 
        }

        private string _LastName;
        public string LastName 
        {
            get { retu…