advanced algorithm notes 7630304