Problem Solving

Useful Algorithms & Data-Structures for Software Engineers

1. About Problem Solving

2. Problem Solving VS. Competitive Programming

3. Do we need to know Algorithms and Data-Structures

4. Complexity Analysis (Big-O notation)

5. Useful data-structures

Table of content

6. Useful algorithms

7. Roadmap

} next

Problem Solving ?

What is

Part 01

Part 01

About Problem Solving

1. About Problem Solving

2. Problem Solving VS. Competitive Programming

3. Do we need to know Algorithms and Data-Structures

4. Complexity Analysis (Big-O notation)

Table of content

5. Useful data-structures

6. Useful algorithms

7. Roadmap

} next

Part 02

Competitive Programming

Part 02

Competitive Programming

Part 02

Competitive Programming

1. About Problem Solving

2. Problem Solving VS. Competitive Programming

3. Do we need to know Algorithms and Data-Structures

4. Complexity Analysis (Big-O notation)

Table of content

5. Useful data-structures

6. Useful algorithms

7. Roadmap

} next

Do we need to know DS-Algo

Part 03

As a Frontend Engineers

Part 03

Single Page Applications

Part 03

Memory Management in Single Page Applications

1. About Problem Solving

2. Problem Solving VS. Competitive Programming

3. Do we need to know Algorithms and Data-Structures

4. Complexity Analysis (Big-O notation)

Table of content

5. Useful data-structures

6. Useful algorithms

7. Roadmap

} next

Part 04

Complexity Analysis

Using Big-O notation

Part 04

Complexity Analysis using Exact time

Part 04

Complexity Analysis using Exact time

1. IPC (Instructions per cycle) is machine dependent

2. CPU frequency varies even with same IPC

Machine dependant

Part 04

Complexity Analysis Example

Q: Can you find the Maximum Element in the array ?

Part 04

Complexity Analysis Example

First Solution:

Part 04

Complexity Analysis Example

Second Solution:

Part 04

How can you know which solution is the fastest?

Part 04

Big-O notation

Describe the worst case scenario for the running complexity of the algorithms

Part 04

Big-O notation

Describe the worst case scenario for the running complexity of the algorithms

Part 04

Big-O notation

Describe the worst case scenario for the running complexity of the algorithms

Part 04

Big-O notation

Describe the worst case scenario for the running complexity of the algorithms

Part 04

Which is Faster ?

1. About Problem Solving

2. Problem Solving VS. Competitive Programming

3. Do we need to know Algorithms and Data-Structures

4. Complexity Analysis (Big-O notation)

Table of content

5. Useful data-structures

6. Useful algorithms

7. Roadmap

} next

Part 05

Useful Data-Structures

Arrays, Maps, Linked Lists, Trees, Stacks, Queues and Heaps

Part 05

Array data-strucute

Part 05

Maps, Dictionaries

Part 05

Linked List:  Single | Double

Part 05

Linked List:  Single | Double

Part 05

Tree data-structure

Part 05

Tree data-structure

Part 05

Tree data-structure

Part 05

Tree node structure

1. Value of the node

2. Pointer to its children

Part 05

Binary Trees

Part 05

Binary Search Trees

Part 05

Binary Search Trees

Part 05

Is tree data-structure useless ?

Part 05

DOM manipulation

http://calendar.perfplanet.com/2013/diff/

Mission Completed 🎉