Advanced Algorithms Flashcards

1
Q

What is an algorithm?

A

(Informally) Any well-defined computational procedure that takes a set of values as input and produces a set of values as output.

An algorithm is a sequence of computational steps that transforms the input into the output.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the 4 basic data structures?

A

Arrays - Fixed size and contiguous (in a sequence) in memory

Multi-dimensional arrays -

Lists - A dynamic array

Strings - One dimensional arrays of characters ended by a null character

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Big O?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the examples of Big O?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the difference between arrays, strings and lists?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How to choose a sort algorithm?

A

These are the different factors that determines what sorting algorithm you use:

-Size of the data set
-Degree of order
-The distribution of the data set
-The amount of information associated with each data item

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the advantages and disadvantages of bubble, selection, merge and quick sorts?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the difference between divide and conquer and dynamic programming?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the difference AVL and Red-black trees?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Why do we need heaps and treaps?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Where do we use B-trees?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are tuples?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are sets?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are dictionaries?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the features of stacks and queues?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

When and why do we use linked lists?

17
Q

What is the difference between singly, doubly, and circular linked lists?

18
Q

Why do we use hash tables?

19
Q

What happens if a collision happens in a hash table and how do you avoid them?

20
Q

What is the load factor in a hash table?

21
Q

What are the differences for four types of linked lists? not sure what that means

22
Q

Which data structures are dynamic and what does dynamic mean?

23
Q

Why and when do we use AVL?

24
Q

Why and when do we use Red-black?

25
Why and when do we use Splay?
26
Why and when do we use Heap?
27
Why and when do we use B-tree?
28