algorithm analysis notes 8933702