In another post, user1723 touched on a question I had while watching the lecture, sections, and walkthrough on pset6.
During lecture, section and walk-through, references to the trade-off between "time needed to search an unsorted linked list" and "time spent sorting the list" seemed to ignore this huge elephant in the room: If the dictionary is sorted, then hashing it into linked lists by entering each new element at the beginning of its list would result in lists that are sorted in reverse order.
The obvious question, then, is: When this assignment is graded, are they planning to deliberately test it with an unsorted list of words that they are calling a "dictionary"?! (One respondent to user 1723 suggested that this is indeed a possibility.)
To me, calling an unsorted list of words a dictionary is as ridiculous as calling a random list of numbers a phone directory or calling a random list of cities a map.
It strikes me as rather deliberately perverse -- perverse, here, in the sense of "obstinately opposing what is reasonable" -- to claim your file is a "dictionary" if it is really a set of words in random order.
So... I'm gathering we need to proof our program against that sort of perversity anyway? I.e., is it correct to assume that a binary search of a "dictionary" we haven't spent time re-sorting ourselves is going to fail when graded?