#include #include #include #include #define numOfChars ('z' - 'a' + 1) //Capitol letters are not used. unsigned int hashFunction(char* key, int keyLength, int numOfHashcodes) { /* This simple hash function uses the bytes in the key as a number in base 256.*/ unsigned int hash = 0; for (int i=0; i hashcodes[mostUsedHashcode]) { mostUsedHashcode = i; } if (hashcodes[i] < hashcodes[leastUsedHashcode]) { leastUsedHashcode = i; } numOfCollisions += hashcodes[i] == 0 ? 0 : hashcodes[i] - 1; if (hashcodes[i] == 0) { numOfNonUsedHashcodes++; } } printf("There were %i hashCodes\n", numOfHashcodes); printf("There were %i different keys\n", numOfKeys); printf("There were %i unused hashcodes\n", numOfNonUsedHashcodes); printf("There were %i collisions, number of keys - number of hash codes = %i\n", numOfCollisions, numOfKeys - numOfHashcodes); printf("Max %i keys got the same hashCode, number of keys / number of hashcodes = %i\n", hashcodes[mostUsedHashcode], (int)(numOfKeys / numOfHashcodes)); printf("Min %i keys got the same hashCode, number of keys / number of hashcodes = %i\n", hashcodes[leastUsedHashcode], (int)(numOfKeys / numOfHashcodes)); }