可恶的GUANGUAN.
-
LEC 00
-
Data Structures
-
Data Collection:
- Set
- List
- Directory/Map
- Bag
- Stack
- Queue
- Grid
- Hierarchy/Tree
- Network
-
Data Structures
- No structure_Just a collection of values
- Linear structure of values_The order matters
- Set of key-value pairs
- Hierarchial structure
- Grid/Table
- ...
-
Access Disciplines
- Get, Put,Delete_Anywhere
- Get, Put,Delete_Only at the ends/the top/both ends
- Get, Put,Delete_By position/value/key
- ...
-
-
Algorithms
- A sequence of precise and concise instructions that guide you (or a computer) to solve a specific problem
- Input--->Algorithm--->Output
-
Algorithms vs. Program
- Algorithms are free from grammatical rules
- Content is more important than form
- Acceptable as long as it tells people how to perform a task
- Programs must follow some syntax rules
- Form is important
- Even if the idea is correct, it is still not acceptable if there is syntax error
- Algorithms will terminate while programs may not
- Algorithms are free from grammatical rules
- An Example:
- Dijkstra's Algorithm: Compute the shortest path efficiently
- A sequence of precise and concise instructions that guide you (or a computer) to solve a specific problem
-
Others:
-
Our focus on algorithms
- Algorithms that create, access, manipulate data structures …
- Cost and performance analysis ...
- Performance refinement...
-
Where are we going?
- Using the Java Collection Library
- Designing and Creating new Collection classes
- How to add, remove, search, sort, etc. efficiently
- Fundamental data structures
- Fundamental algorithms
- Measuring efficiency of algorithms
-
-
Q&A
- Why do we insist an algorithm must terminate?
- Does an algorithm have to terminate? - Computer Science Stack Exchange
- Why do we insist an algorithm must terminate?
-