0% found this document useful (0 votes)
103 views23 pages

1 Data Structures and Algorithms

The document discusses data structures and algorithms. It defines data as a collection of facts that can be used to draw conclusions. It then defines different types of data like textual, numeric, audio and video data. It goes on to define data structures as organized ways to store and access data efficiently. Common data structures include arrays, linked lists, stacks, queues and trees. The document also defines algorithms as sets of instructions to solve problems and lists properties of good algorithms.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
0% found this document useful (0 votes)
103 views23 pages

1 Data Structures and Algorithms

The document discusses data structures and algorithms. It defines data as a collection of facts that can be used to draw conclusions. It then defines different types of data like textual, numeric, audio and video data. It goes on to define data structures as organized ways to store and access data efficiently. Common data structures include arrays, linked lists, stacks, queues and trees. The document also defines algorithms as sets of instructions to solve problems and lists properties of good algorithms.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 23

Data Structures and

Algorithms
What is data?
 Data
 A collection of facts from which conclusion may be
drawn
 e.g. Data: Temperature 35°C; Conclusion: It is hot.

 Types of data
 Textual: For example, your name (Jose Rizal)
 Numeric: For example, your ID (XYZ-0001)
 Audio: For example, your voice
 Video: For example, your voice and picture
What is data structure?
 A particular way of storing and organizing data in
a computer so that it can be used efficiently and
effectively.

 Data structure is the logical or mathematical model


of a particular organization of data.

A group of data elements grouped together under


one name.
 For example, an array of integers
What is data structure?
Data Structures are containers that contain objects of data
types. There are several common data structures, and each
has its own behavior and applications.

Common data structures are: arrays of one or more


dimensions, stacks, linked lists (singly and doubly linked),
queues, trees (balanced, binary, and so on), graph and
hashing.
Types of data structures
Array

Linked List

Queue Stack
Tree
The Need for Data Structures

 Goal: to organize data

 Criteria: to facilitate efficient


 storage of data
 retrieval of data
 manipulation of data

 Design Issue:
 select and design appropriate data types
Data Structure Operations
 Traversing
 Accessing each data element exactly once so that certain
items in the data may be processed

 Searching
 Finding the location of the data element (key) in the
structure

 Insertion
 Adding a new data element to the structure
Data Structure Operations
 Deletion
 Removing a data element from the structure

 Sorting
 Arrange the data elements in a logical order
(ascending/descending)

Merging
 Combining data elements from two or more data
structures into one
What is algorithm?
 A finite set of instructions which accomplish a particular task
 A method or process to solve a problem
 Transforms input of a problem to output

Algorithm = Input + Process + Output

Algorithm development is an art – it needs practice, practice and only


practice!
What is a good algorithm?
 It must be correct
 It must be finite (in terms of time and size)
 It must terminate
 It must be unambiguous
 Which step is next?
 It must be space and time efficient

A program is an instance of an algorithm, written in


some specific programming language.
A simple algorithm
 Problem: Find maximum of a, b, c
 Algorithm
 Input = a, b, c
 Output = max
 Process
oLet max = a
o If b > max then
max = b
o If c > max then
max = c
o Display max

Order is very important!!!


Algorithm development: Basics
 Clearly identify:
 what output is required?
 what is the input?
 What steps are required to transform input into
output
o The most crucial bit
o Needs problem solving skills
o A problem can be solved in many different ways
o Which solution, amongst the different possible
solutions is optimal?
How to express an algorithm?
A sequence of steps to solve a problem
We need a way to express this sequence of steps
 Natural language (NL) is an obvious choice, but not a good choice.
Why?
o NLs are notoriously ambiguous (unclear)

 Programming Language (PL) is another choice, but again not a good


choice. Why?
o Algorithm should be PL independent

 We need some balance


o We need PL independence
o We need clarity
o Pseudo-code provides the right balance
What is Pseudo-code?
 Pseudo-code is a short hand way of describing a computer
program

 Rather than using the specific syntax of a computer


language, more general wording is used

 It is a mixture of NL and PL expressions, in a systematic


way

 Using pseudo-code, it is easier for a non-programmer to


understand the general workings of the program
Pseudo-code: General Guidelines
 Use PLs construct that are consistent with modern high
level languages, e.g. C++, Java, ...

 Use appropriate comments for clarity

Be simple and precise


Components of Pseudo-code

 Expressions
 Standard mathematical symbols are used
o Left arrow sign (←) as the assignment operator in assignment
statements (equivalent to the = operator in Java)
o Equal sign (=) as the equality relation in Boolean expressions
(equivalent to the "= =" relation in Java)
o For example
Sum ← 0
Sum ← Sum + 5

What is the final value of sum?


Components of Pseudo-code
 Decision structures (if-then-else logic)
 if condition then true-actions [else false-actions]
 We use indentation to indicate what actions should be included in
the true-actions and false-actions
 For example

if marks > 50 then


print “Congratulation, you are passed!”
else
print “Sorry, you are failed!”
end if

What will be the output if marks are equal to 75?


Components of Pseudo-code
 Loops (Repetition)
 Pre-condition loops
o While loops
• while condition do actions
• We use indentation to indicate what actions should be included in the loop
actions
• For example
while counter < 5 do
print “Hello World!”
counter ← counter + 1
end while

What will be the output if counter is initialized to 0, 7?


Components of Pseudo-code
 Loops (Repetition)
 Pre-condition loops
o For loops
• for variable-increment-definition do actions
• For example
for counter ← 0; counter < 5; counter ← counter + 2 do
print “Hello World!”
end for

What will be the output?


Components of Pseudo-code
 Loops (Repetition)
 Post-condition loops
o Do loops
• do actions while condition
• For example
do
print “Hello World!”
counter ← counter + 1
while counter < 5

What will be the output, if counter was initialized to 10?

The body of a post-condition loop must execute at


least once
Components of Pseudo-code
 Method declarations
 Return_type method_name (parameter_list) method_body
 For example
integer sum ( integer num1, integer num2)
start
result ← num1 + num2
end
 Method calls
 object.method (args)
 For example
mycalculator.sum(num1, num2)
Components of Pseudo-code
 Method returns
 return value
 For example
integer sum ( integer num1, integer num2)
start
result ← num1 + num2
return result
end
Components of Pseudo-code
 Comments
 /* Multiple line comments go here. */
 // Single line comments go here
 Some people prefer braces {}, for comments
 Arrays
 A[i] represents the ith cell in the array A.
 The cells of an n-celled array A are indexed from A[0] to
A[n − 1] (consistent with Java).

You might also like