• Post Reply Bookmark Topic Watch Topic
  • New Topic

Handbook/Quick reference guide for Data Structures and Algorithms ?  RSS feed

 
Ranch Hand
Posts: 70
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I need a book, pdf, article etc which lists the basic algortihms and data structures, their O notation, advantages, disadvantages, where to use/where not to use and may be a small description of how it works.
I want to be able to look it up whenever I have a task that needs an algo or a ds. I dont want a book that goes into too much detail and actually implements the ds or algo.

eg. If my ds needs to be like an array and growable...i refer to the manual and see that arraylist satisfies those needs.

 
Marshal
Posts: 56600
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can probably find Niklaus Wirth’s book on that subject free. I do not believe it uses Java in its illustrations.
 
Bartender
Posts: 2856
10
Fedora Firefox Browser Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Few days back someone pointed out the Shaffer book which is a free book with code samples based on Java.
 
Amit Ghorpade
Bartender
Posts: 2856
10
Fedora Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
David Blaine wrote:I want to be able to look it up whenever I have a task that needs an algo or a ds. I dont want a book that goes into too much detail and actually implements the ds or algo.

eg. If my ds needs to be like an array and growable...i refer to the manual and see that arraylist satisfies those needs.

Not sure if the book I mentioned above meets your requirements.
 
lowercase baba
Bartender
Posts: 12565
49
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
David Blaine wrote:... and actually implements the ds or algo.

eg. If my ds needs to be like an array and growable...i refer to the manual and see that arraylist satisfies those needs.


Are you talking about a Nintendo DS?

Please UseRealWords, or at least explain what your abbreviations mean. The poper way to do it would be like this:

...which lists the basic algortihms and data structures (d.s.), their O notation,...
 
Ranch Hand
Posts: 3090
14
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sounds like you would like the Big O cheat sheet. Note the links to wikipedia articles, also a good resource. I also like Steven Skiena's Algorithm Design Manual - you can access parts of this at the Stony Brook Algorithm Repository.
 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My answer won't help you to go to the deepest level but will help you get started at least.

First thing would be to revise basic data structures linked lists, stacks, queues. Then a little more complex data structures - graphs, binary tress, heaps, threaded binary trees, binary search trees, AVL trees, hash tables. (3 days)

After having revised the data structures you can move to search algorithms - linear search, binary search.(an hour)

The next action item would be to revise sorting algorithms: bubble sort, selection sort, insertions sort, quick sort, merge sort, heap sort, shell sort, et cetera.(a couple of days)

At this point you already have revised fundamentals of algorithms. You can start with asymptotic notations and then move to various design paradigms viz. greedy, divide conquer, dynamic programming (one day for each of the paradigms). You could go for sites like: http://careerguide.techproceed.com

Popular examples under each of the above paradigms:
A. Greedy
1. Knapsack problem
2. Prim's algoritm
3. Kruskal's algorithm
4. Huffmann codes
5. Dijkstra's algorith

B. Divide and conquer
1. Binary search
2. Maximum, minimum
3. Quick sort
4. Merge sort

C. Dynamic programming
1. 0/1 knapsack
2. Matrix chain multiplication

D. Backtracking
1. N queen's problem

E. Branch and bound


All this would take say 10 days. And you will have 3 weeks to go deeper.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!