Going through basic algorithms with multiple implementations