algorithm practice by data structure, searching, and sorting