0% found this document useful (0 votes)
13 views

DSA - Lesson 1 [Autosaved]

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

DSA - Lesson 1 [Autosaved]

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

INTRO TO

Data Structures
&
Algorithms
Introduction
Data Structure
• Data Structure is a way of collecting and organizing data in
such a way that we can perform operations on these data in
an effective way. Data Structures is about rendering data
elements in terms of some relationship, for better
organization and storage.

• Data Structures are structures programmed to store ordered


data, so that various operations can be performed on it
easily. It represents the knowledge of data to be organized
in memory.

• It should be designed and implemented in such a way that


it reduces the complexity and increases the efficiency.
D ATA S T R U C T U R E S &
Characteristics of a Data Structure

• Correctness − Data structure implementation should implement


its interface correctly.

• Time Complexity − Running time or the execution time of


operations of data structure must be as small as possible.

• Space Complexity − Memory usage of a data structure operation


should be as little as possible.

3
D ATA S T R U C T U R E S &
Data
Is a collection of numbers, symbol or characters.

It is raw and unorganized.

4
D ATA S T R U C T U R E S &
Information
An organized collection of data, that is arranged meaningfully.

5
D ATA S T R U C T U R E S &
Data Structures
• Is a data organization, management and storage format
that enables efficient access and modification.

• Is a way in which a Data is stored on a Device.

6
D ATA S T R U C T U R E S &
Why Do We Need Data Structures?
So that we can Store Data in a particular situation efficiently
and use our resources in the most productive way possible.

7
D ATA S T R U C T U R E S &
Real World Application
Supermarket

• Stored Categorically
• Efficient Searching

8
D ATA S T R U C T U R E S &
Real World Application
Library

• Stored Alphabetically
• Efficient Searching

9
D ATA S T R U C T U R E S &
Real World Application
Maps

• Stored as Coordinates
• Efficient Searching

10
D ATA S T R U C T U R E S &
Variables
A Temporary storage for data which is stored in our RAM.

11
D ATA S T R U C T U R E S &
Array / Collections

• A Data Structure that contains a group of values / variables


that can be accessed by using an index.

• In most cases their values are of the Same Datatype.

• They are commonly used to organize data so that it can be


easily sorted or searched.

12
D ATA S T R U C T U R E S &
Programming Application

Array in C++ WITHOUT SORTING.

Assume that it takes 1 second for each element to be read

13
D ATA S T R U C T U R E S &
Programming Application

Array in C++ WITHOUT SORTING.

Let’s search for “RM-101” by iterating the array.

14
D ATA S T R U C T U R E S &
Programming Application

Array in C++ WITHOUT SORTING.


1s 2s 3s

Found “RM-101”
Searching forafter 3 seconds.
“RM-101”

15
D ATA S T R U C T U R E S &
Programming Application

Array in C++ WITH SORTING.


1s

Let’s search
Found
for “RM-101”
“RM-101”by
after
iterating
1 second
the array.

16
D ATA S T R U C T U R E S &
Programming Application

Array in C++ WITH SORTING.

2s 1s

Found “RM-103”
Let’s search for “RM-103” for after
by iterating
Searching 2 second
the
“RM-103” array from the end.

17
D ATA S T R U C T U R E S &
Conclusion

The Main Goal of Data Structure and Algorithms is to


MINIMIZE the time consumed in searching, sorting and
writing data on our System.

18
D ATA S T R U C T U R E S &
Need for Data Structure
As applications are getting complex and data rich, there are three common problems that
applications face now-a-days.

• Data Search − Consider an inventory of 1 million (106) items of a store. If the application
is to search an item, it has to search an item in 1 million (106) items every time slowing
down the search. As data grows, search will become0 slower.
• Processor Speed − Processor speed although being very high, falls limited if the data
grows to billion records.
• Multiple Requests − as thousands of users can search data simultaneously on a web
server, even the fast server fails while searching the data.

To solve the above-mentioned problems, data structures come to rescue. Data can be organized
in a data structure in such a way that all items may not be required to be searched, and the
required data can be searched almost instantly.

19
D ATA S T R U C T U R E S &
What is an Algorithm?
• Algorithm is a step-by-step procedure, which defines a set of instructions to be
executed in a certain order to get the desired output. Algorithms are generally
created independent of underlying languages, i.e. an algorithm can be implemented
in more than one programming language.

• In computer programming terms, an algorithm is a set of well-defined instructions to


solve a particular problem. It takes a set of input(s) and produces the desired output.

For example:
An algorithm to add two numbers:
• Take two number inputs
• Add numbers using the + operator
• Display the result

20
D ATA S T R U C T U R E S &
Let us consider the problem of preparing an omelette. To prepare an omelette, we follow
the steps given below:
1) Get the frying pan.
2) Get the oil.
a. Do we have oil?
• If yes, put it in the pan.
• If no, do we want to buy oil?
 If yes, then go out and buy.
 If no, we can terminate.
3)Turn on the stove, etc...

What we are doing is, for a given problem (preparing an omelette), we are providing a
step-by step procedure for solving it. The formal definition of an algorithm can be stated
as: An algorithm is the step-by-step unambiguous instructions to solve a given problem.

21
D ATA S T R U C T U R E S &
Qualities of a Good Algorithm

• Input and output should be defined precisely.


• Each step in the algorithm should be clear and unambiguous.
• Algorithms should be most effective among many ways to solve a problem.
• An algorithm shouldn't include computer code. Instead, the algorithm should be
written in such a way that it can be used in different programming languages.

22
D ATA S T R U C T U R E S &
23
D ATA S T R U C T U R E S &
From the data structure point of view, following are some important categories of
algorithms −

• Search − Algorithm to search an item in a data structure.


• Sort − Algorithm to sort items in a certain order.
• Insert − Algorithm to insert item in a data structure.
• Update − Algorithm to update an existing item in a data structure.
• Delete − Algorithm to delete an existing item from a data structure.

24
D ATA S T R U C T U R E S &
Characteristics of an Algorithm
Not all procedures can be called an algorithm. An algorithm should have the following
characteristics −

• Unambiguous − Algorithm should be clear and unambiguous. Each of its steps


(or phases), and their inputs/outputs should be clear and must lead to only one
meaning.
• Input − an algorithm should have 0 or more well-defined inputs.
• Output − an algorithm should have 1 or more well-defined outputs, and should
match the desired output.
• Finiteness − Algorithms must terminate after a finite number of steps.
• Feasibility − should be feasible with the available resources.
• Independent − an algorithm should have step-by-step directions, which should
be independent of any programming code.

25
D ATA S T R U C T U R E S &
Algorithm 1: Add two numbers entered by the user

Step 1: Start
Step 2: Declare variables num1, num2 and sum.
Step 3: Read values num1 and num2.
Step 4: Add num1 and num2 and assign the result to sum.
sum←num1+num2
Step 5: Display sum
Step 6: Stop

26
D ATA S T R U C T U R E S &
Algorithm 2: Find the largest number among three
numbers

Step 1: Start
Step 2: Declare variables a,b and c.
Step 3: Read variables a,b and c.
Step 4: If a > b
If a > c
Display a is the largest number.
Else
Display c is the largest number.
Else
If b > c
Display b is the largest number.
Else
Display c is the greatest number.
Step 5: Stop

27
D ATA S T R U C T U R E S &
A good algorithm maintains a level of correctness while being
efficient. Meaning, there is little error, and it doesn’t take much time
to complete. Another important component is comprehensibility.
We wouldn’t be able to use algorithms so frequently if they couldn’t
be understood. Algorithmic and computational thinking is so
pervasive that it governs the simplest things in our daily lives. Here
are some examples of algorithms you interact with everyday.

28
D ATA S T R U C T U R E S &
Recipes
Just like sorting papers and even tying your shoes, following a recipe is a type
of algorithm. The goal of course being to create a duplicated outcome. In
order to complete a recipe, you must follow a given set of steps. Say you are
making bread. You need flour, yeast and water. After you have your
ingredients, you need to combine them in a certain way that will create a
predictable outcome, in this case a loaf of bread.

29
D ATA S T R U C T U R E S &
Sorting Papers

A simple task and yet it uses algorithmic thinking. When you are sorting office
files or your personal documents you are implementing an algorithm. In its
most basic sense, you are following a set of tasks to achieve an outcome. The
reason why sorting papers is a great example, is because it shows the variety
of tasks and specifications algorithms can use. For instance, you can sort your
files alphabetically, by word count, by date, and countless others. The goal is
to simplify the organizational process by using small tasks.

30
D ATA S T R U C T U R E S &
ACTIVITY TIME!

31
D ATA S T R U C T U R E S &
Write down at least 3
algorithms you interact
with everyday and present
it in front of the class.
32
D ATA S T R U C T U R E S &
Types of Data Structure
Basically, data structures are divided into two categories:
• Linear data structure
• Non-linear data structure

Linear data structures


• In linear data structures, the elements are arranged in sequence one after the
other. Since elements are arranged order, they are easy to implement.
• However, when the complexity of the program increases, the linear data
structures might not be the best choice because of operational complexities

33
D ATA S T R U C T U R E S &
Popular linear data structures are:

1. Array Data Structure


In an array, elements in memory are arranged in continuous memory. All the elements of
an array are of the same type. And the type of elements that can be stored in the form of
arrays is determined by the programming language.

An array with each element represented by an index

34
D ATA S T R U C T U R E S &
2. Stack Data Structure
In stack data structure, elements are stored in the LIFO principle. That is, the last element
stored in a stack will be removed first.
It works just like a pile of plates where the last plate kept on the pile will be removed first.

In a stack, operations can be performed only from one end (top here).

35
D ATA S T R U C T U R E S &
3. Queue Data Structure
Unlike stack, the queue data structure works in the FIFO principle where first element
stored in the queue will be removed first.
It works just like a queue of people in the ticket counter where first person on the queue
will get the ticket first.

In a queue, addition and removal are performed from separate ends.

36
D ATA S T R U C T U R E S &
4. Linked List Data Structure
In linked list data structure, data elements are connected through a series of nodes. And
each node contains the data items and address to the next node.

A linked list

37
D ATA S T R U C T U R E S &
Non-linear data structures
Unlike linear data structures, elements in non-linear data structures are not in any sequence.
Instead they are arranged in a hierarchical manner where one element will be connected to one
or more elements.
Non-linear data structures are further divided into graph and tree-based data structures.
1. Graph Data Structure
In graph data structure, each node is called vertex and each vertex is connected to
other vertices through edges.

Graph data structure example

38
D ATA S T R U C T U R E S &
Non-linear data structures
2. Trees Data Structure
Like a graph, a tree is also a collection of vertices and edges. However, in tree
data structure, here can only be one edge between two vertices.

Tree data structure example

39
D ATA S T R U C T U R E S &
Linear Vs Non-linear Data
Structures
Now that we know about linear and non-linear data structures, let's see the major differences
between them.
Linear Data Structures Non-Linear Data Structures

The data items are arranged in sequential The data items are arranged in non-sequential
order, one after the other. order (hierarchical manner).

All the items are present on the single layer. The data items are present at different layers.

It can be traversed on a single run. That is, if we It requires multiple runs. That is, if we start from
start from the first element, we can traverse all the first element it might not be possible to
the elements sequentially in a single pass. traverse all the elements in a single pass.

Different structures utilize memory in different


The memory utilization is not efficient.
efficient ways depending on the need.

The time complexity increases with the data


Time complexity remains the same.
size.

Example: Arrays, Stack, Queue Example: Tree, Graph, Map

40
D ATA S T R U C T U R E S &
Linear Data Structures Non-Linear Data Structures
The data items are arranged in sequential order, one The data items are arranged in non-sequential order
after the other. (hierarchical manner).

All the items are present on the single layer. The data items are present at different layers.

It can be traversed on a single run. That is, if we start It requires multiple runs. That is, if we start from the
from the first element, we can traverse all the first element it might not be possible to traverse all the
elements sequentially in a single pass. elements in a single pass.

Different structures utilize memory in different efficient


The memory utilization is not efficient.
ways depending on the need.

The time complexity increases with the data size. Time complexity remains the same.

Example: Arrays, Stack, Queue Example: Tree, Graph, Map

41
D ATA S T R U C T U R E S &
THANK
YOU

You might also like