# Common and frequently used algorithms of Data structures? [closed]

I have been programming for a while, and the edge that I am missing over other programming is algorithms. I know what is linked-list and binary tree, but I dont know many more of them.

I failed on 2 interviews, because of exercises that demanded me to know some data structures algorithms. I am also starting to build a javascript project which has some heavy processing, and I need to know a few good frequently used algorithms?

I personally believe it is difficult to learn enough and you should always be looking at what to learn next, either to deepen or broaden your current knowledge base.

However the basic algorithms and data structures required would be:

## Minimum

• Data Structures
• Ones, Two's Complement, and Related Arithmetic
• Hash Tables (maps or dictionaries)
• Arrays, Trees, Stacks, Queues, Graphs, Databases

## Algorithms

• Sorting
• Bubble Sort (to know why it's bad)
• Insertion Sort
• Merge Sort
• Quick Sort
• Counting Sort and Bucket Sort
• Heap Sort
• Searching
• Linear Search
• Binary Search
• Depth First Search
• String Manipulation
• Iteration
• Tree Traversal
• Hashing Functions
• Concrete implementation of a Hash Table, Tree, List, Stack, Queue, Array, and Set or Collection

Also, the MOST IMPORTANT thing is to know when to USE them.

Robert, above gave the link for List of Data Structures, Here's for Algorithms

http://en.wikipedia.org/wiki/List_of_data_structures

• Arrays
• Lists
• Graphs
• Trees
• Hash Tables

See also http://sijinjoseph.com/programmer-competency-matrix/, wherein the author describes the following levels, in order of increasing competency:

1. Able to explain and use Arrays, LinkedLists, Dictionaries etc in practical programming tasks

2. Knows space and time tradeoffs of the basic data structures, Arrays vs LinkedLists, Able to explain how hashtables can be implemented and can handle collisions, Priority queues and ways to implement them etc.

3. Knowledge of advanced data structures like B-trees, binomial and fibonacci heaps, AVL/Red Black trees, Splay Trees, Skip Lists, tries etc.