Maiden Speech
For me software craftsmanship includes the notion of mastering algorithms. I want to get better at mastering algorithms_. What does the community think will help me improve the time or space efficiency of my program.
Learning Plan
I am going to focus on different topics in different weeks. For each topics, I plan:
Learning Plan
I am going to focus on different topics in different weeks. For each topics, I plan:
- Identify different algorithm related to this topics.
- Write a basic version of related algorithms.
- Complete at least 10 online testing problems related to this algorithms.
- //Think of at least 1 application of this topics, and finish the applications. The application can be a extension of the previous application.
Here are the topics I am going to focus:
Graph:
Graph:
- DFS
- BFS
- topological sort
- strongly connected components
- minimum spanning trees
- single source shortest path
- all pair shortest path
- maximus flow
Tree:
- Binary search Tree
- R-B tree
- B-trees
Data Structure
- Stack
- Queue
- Heap
- Linked List
Assessment
For different topics, I have different level:
- Array sorting and String Manipulation: 3
- Stacks and Queues: 2
- Graph: 2
- Tree: 2
- Dynamic Programming: 1
1) beginning, 2) developing, 3) competent, 4) advanced.