Searching and sorting Data structures and information storage mathematics