-
Notifications
You must be signed in to change notification settings - Fork 96
/
Copy pathdsa.py
50 lines (32 loc) · 2.54 KB
/
dsa.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
1.) What is data-structure?
Data structure is a way of defining, storing & retriving of data in a structural & systemetic way. A data structure may contain different type of data items.
2.) What are various data-structures available?
Data structure availability may vary by programming languages. Commonly available data structures are list, arrays, stack, queues, graph, tree etc.
3.) What is algorithm?
Algorithm is a step by step procedure, which defines a set of instructions to be executed in certain order to get the desired output.
4.) Why we need to do algorithm analysis?
A problem can be solved in more than one ways. So, many solution algorithms can be derived for a given problem. We analyze available algorithms to find and implement the best suitable algorithm.
5.) What are the criteria of algorithm analysis?
An algorithm are generally analyzed on two factors − time and space. That is, how much execution time and how much extra space required by the algorithm.
6.) What is asymptotic analysis of an algorithm?
Asymptotic analysis of an algorithm, refers to defining the mathematical boundation/framing of its run-time performance. Using asymptotic analysis, we can very well conclude the best case, average case and worst case scenario of an algorithm.
7.) What are asymptotic notations?
Asymptotic analysis can provide three levels of mathematical binding of execution time of an algorithm −
Best case is represented by Ω(n) notation.
Worst case is represented by Ο(n) notation.
Average case is represented by Θ(n) notation.
8.) What is linear data structure?
A linear data-structure has sequentially arranged data items. The next time can be located in the next memory address.
It is stored and accessed in a sequential manner. Array and list are example of linear data structure.
9.) What are common operations that can be performed on a data-structure?
The following operations are commonly performed on any data-structure −
Insertion − adding a data item
Deletion − removing a data item
Traversal − accessing and/or printing all data items
Searching − finding a particular data item
Sorting − arranging data items in a pre-defined sequence
10.) Briefly explain the approaches to develop algorithms.
There are three commonly used approaches to develop algorithms −
Greedy Approach − finding solution by choosing next best option
Divide and Conquer − diving the problem to a minimum possible sub-problem and solving them independently
Dynamic Programming − diving the problem to a minimum possible sub-problem and solving them combinedly.