2 ms·
I like the careful review of python at the start. The "stories" in the writing seem good. If you want to learn by reading somebody explain how to solve a probl
by throwingawaymat 6y ago
I like the careful review of python at the start.
The "stories" in the writing seem good. If you want to learn by reading somebody explain how to solve a problem, I think this is a good text for you.
I don't think there are enough exercises... with a title of "problem solving..." I was expecting more focus on (challenging?) problems in the exercises. If you want to learn by thinking about how to solve problems, this is not the text for you.
I could not find a comparison of the orders of various operations on ADT's. I thought I would find something like that in Chapter 3. I think that omission makes it hard to understand the big picture.
Details seem raw:
* The table on page 9 shows the Pythonic not equals operator is `=!`.
* 2.7 Programming Exercise 4 should really be specifying linear _in what parameter(s)_ for clarity. The operation is O(nk) presumably. Exercise 5 assumes that n = len(data) from Exercise 4. The claim that O(n log(n)) < O(n k) depends on k and n, but that isn't clearly stated.
* 3.14 Programming Exercise 7: this exercise has in mind only one particular solution. Does not a double ended queue have O(1) enqueue and dequeue?
- i-am-curious 6y ago> Does not a double ended queue have O(1) enqueue and dequeue? Yes. It's a basic data structure implementable using vector or linked lists. When using the linked list, you can even do erase in O(1) assuming you have the pointer already. This also turns out to be super useful