Mastering algorithms with c