SlideShare a Scribd company logo
Some slides are borrowed from Mr. Mohammad Alqahtani
•Overview.
•Algorithm Analysis.
 Be familiar with problem solving.
 Be able to develop (and implement) algorithms.
 Be able to trace algorithms.
 Be able to select appropriate data structures and
algorithms for given problems.
 Prerequisites:
◦ Variables and expressions.
◦ Methods (functions or procedures ).
◦ Decision structures( like if-statements and
switch-statements.
◦ Iteration structures (for-loops and while-loops).
◦ Classes and objects
 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 (Alya)
◦ Numeric: For example, your ID (090254)
◦ Audio: For example, your voice
◦ Video: For example, your voice and picture
◦ (...)
5
 Applications/programs read data, store data
temporarily, process it and finally output
results.
 What is data? Numbers, Characters, etc.
Application/
Program
Data Data
6
 Data is classified into data types. e.g. char, float, int, etc.
 A data type is (i) a domain of allowed values and (ii) a set
of operations on these values.
 Compiler signals an error if wrong operation is performed
on data of a certain type. For example, char x,y,z; z =
x*y is not allowed.
7
 Examples
Data Type Domain Operations
boolean 0,1 and, or, =, etc.
char ASCII =, <>, <, etc.
integer -maxint to
+maxint
+, _, =, ==,
<>, <, etc.
8
 Simple Data types: also known as atomic data
types  have no component parts. E.g. int,
char, float, etc.
21 3.14 ‘a’
 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
10
 Structured Data types: can be broken into
component parts. E.g. an object, array, set,
file, etc. Example: a student object.
A H M A D
20
C S C
Name
Age
Branch
A Component part
There are many, but we named a few. We’ll learn these
data structures in great detail!
Array
Linked List
Tree
Queue Stack
Types of 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
(This is the main motivation to learn and
understand data structures)
(Demonstrate using class room
example!)
 Navigating
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
 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
 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!
 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
 Problem: Find maximum of a, b, c
 Algorithm
 Input = a, b, c
 Output = max
 Process
o Let max = a
o If b > max then
max = b
o If c > max then
max = c
o Display max
Order is very important!!!
 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?
 A sequence of steps to solve a problem
 We need a way to express this sequence of steps
1. Natural language (NL) is an obvious choice, but not
a good choice. Why?
o NLs are notoriously ambiguous (unclear)
2. 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
 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
 Use PLs construct that are consistent with
modern high level languages, e.g. C++,
Java, ...
 Use appropriate comments for clarity
 Be simple and precise
 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?
 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?
 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 “Welcome to CS204!”
counter ← counter + 1
end while
What will be the output if counter is initialised to 0, 7?
 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 “Welcome to CS204!”
end for
What will be the output?
 Loops (Repetition)
 Post-condition loops
o Do loops
 do actions while condition
 For example
do
print “Welcome to CS204!”
counter ← counter + 1
while counter < 5
What will be the output, if counter was initialised to 10?
The body of a post-condition loop must execute at least once
 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)
 Method returns
 return value
 For example
integer sum ( integer num1, integer num2)
start
result ← num1 + num2
return result
end
 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).
 Example 1: Determining even/odd number
 A number divisible by 2 is considered an even number, while a
number which is not divisible by 2 is considered an odd number.
Write pseudo-code to display first N odd/even numbers.
 Example 2: Computing Weekly Wages
 Gross pay depends on the pay rate and the number of hours
worked per week. However, if you work more than 40 hours, you
get paid time-and-a-half for all hours worked over 40. Write the
pseudo-code to compute gross pay given pay rate and hours
worked
Input range
for num←0; num<=range; num←num+1 do
if num % 2 = 0 then
print num is even
else
print num is odd
endif
endfor
 Example 1: Determining even/odd number
◦ A number divisible by 2 is considered an even number, while
a number which is not divisible by 2 is considered an odd
number. Write pseudo-code to display first N odd/even
numbers.
 Example 2: Computing Weekly Wages
 Gross pay depends on the pay rate and the number of hours
worked per week. However, if you work more than 40 hours,
you get paid time-and-a-half for all hours worked over 40.
Write the pseudo-code to compute gross pay given pay rate and
hours worked
Input range
for num←0; num<=range; num←num+1 do
if num % 2 = 0 then
print num is even
else
print num is odd
endif
endfor
Input hours_worked, pay_rate
if hours_worked <= 40 then
gross_pay ← pay_rate x hours_worked
else
basic_pay ← pay_rate x 40
over_time ← hours_worked – 40
over_time_pay ← 1.5 x pay_rate x over_time
gross_pay ← basic_pay + over_time_pay
endfor
print gross_pay
1. Write an algorithm to find the largest
of a set of numbers. You do not know
the number of numbers.
2. Write an algorithm in pseudocode
that finds the average of (n) numbers.
For example numbers are [4,5,14,20,3,6]s

More Related Content

PPT
Data Structures- Part1 overview and review
PPTX
GLOBAL INSTITUTE OF MANAGEMENT AND TECHNOLOGY.pptx
PPTX
DA lecture 3.pptx
PPT
Intro to DSAA.ppt
PDF
Introduction to programming : flowchart, algorithm
PPTX
Algorithm & data structure lec2
PPTX
CSE115 C Programming Introduction North south university
DOCX
Lecture1
Data Structures- Part1 overview and review
GLOBAL INSTITUTE OF MANAGEMENT AND TECHNOLOGY.pptx
DA lecture 3.pptx
Intro to DSAA.ppt
Introduction to programming : flowchart, algorithm
Algorithm & data structure lec2
CSE115 C Programming Introduction North south university
Lecture1

Similar to lec_4_data_structures_and_algorithm_analysis.ppt (20)

PDF
DSA
PPTX
L1_Start_of_Learning_of_Algorithms_Basics.pptx
PPTX
Computer Studies 2013 Curriculum framework 11 Notes ppt.pptx
PDF
Algorithm Design and Analysis
PPTX
Pseudocode
PPT
3 algorithm-and-flowchart
PPTX
Design and Analysis of Algorithm ppt for unit one
PDF
Data Structure - Lecture 1 - Introduction.pdf
PPTX
C++.pptx
PPTX
L1_DatabAlgorithm Basics with Design & Analysis.pptx
PPT
UNIT-1-PPT-DESIGN AND ANALYSIS OF ALGORITHMS
PPT
Lecture 01-2.ppt
PPTX
Unit 1 Introduction Part 3.pptx
PPT
Lecture 01 - Introduction and Review.ppt
PPTX
C PROGRAMMING document for beginners....
PPTX
Data Structures and Algorithms for placements
PDF
UNIT-1-PdjfjfjfjfjfjfjfjfjfjfjPTS-DAA.pdf
PDF
UNIT-1-PPTS-DAA_cofjfjvjcjcncnfncmpressed.pdf
PPT
467719275-Lecture-01 designe and alg.ppt
PDF
ppts foe design and analysis of algorithm
DSA
L1_Start_of_Learning_of_Algorithms_Basics.pptx
Computer Studies 2013 Curriculum framework 11 Notes ppt.pptx
Algorithm Design and Analysis
Pseudocode
3 algorithm-and-flowchart
Design and Analysis of Algorithm ppt for unit one
Data Structure - Lecture 1 - Introduction.pdf
C++.pptx
L1_DatabAlgorithm Basics with Design & Analysis.pptx
UNIT-1-PPT-DESIGN AND ANALYSIS OF ALGORITHMS
Lecture 01-2.ppt
Unit 1 Introduction Part 3.pptx
Lecture 01 - Introduction and Review.ppt
C PROGRAMMING document for beginners....
Data Structures and Algorithms for placements
UNIT-1-PdjfjfjfjfjfjfjfjfjfjfjPTS-DAA.pdf
UNIT-1-PPTS-DAA_cofjfjvjcjcncnfncmpressed.pdf
467719275-Lecture-01 designe and alg.ppt
ppts foe design and analysis of algorithm
Ad

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
System and Network Administration Chapter 2
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Introduction to Artificial Intelligence
PPTX
history of c programming in notes for students .pptx
PDF
Cost to Outsource Software Development in 2025
PPTX
assetexplorer- product-overview - presentation
PPTX
Transform Your Business with a Software ERP System
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Odoo Companies in India – Driving Business Transformation.pdf
System and Network Administration Chapter 2
CHAPTER 2 - PM Management and IT Context
wealthsignaloriginal-com-DS-text-... (1).pdf
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Why Generative AI is the Future of Content, Code & Creativity?
Operating system designcfffgfgggggggvggggggggg
Introduction to Artificial Intelligence
history of c programming in notes for students .pptx
Cost to Outsource Software Development in 2025
assetexplorer- product-overview - presentation
Transform Your Business with a Software ERP System
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Upgrade and Innovation Strategies for SAP ERP Customers
Reimagine Home Health with the Power of Agentic AI​
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Computer Software and OS of computer science of grade 11.pptx
Ad

lec_4_data_structures_and_algorithm_analysis.ppt

  • 1. Some slides are borrowed from Mr. Mohammad Alqahtani •Overview. •Algorithm Analysis.
  • 2.  Be familiar with problem solving.  Be able to develop (and implement) algorithms.  Be able to trace algorithms.  Be able to select appropriate data structures and algorithms for given problems.
  • 3.  Prerequisites: ◦ Variables and expressions. ◦ Methods (functions or procedures ). ◦ Decision structures( like if-statements and switch-statements. ◦ Iteration structures (for-loops and while-loops). ◦ Classes and objects
  • 4.  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 (Alya) ◦ Numeric: For example, your ID (090254) ◦ Audio: For example, your voice ◦ Video: For example, your voice and picture ◦ (...)
  • 5. 5  Applications/programs read data, store data temporarily, process it and finally output results.  What is data? Numbers, Characters, etc. Application/ Program Data Data
  • 6. 6  Data is classified into data types. e.g. char, float, int, etc.  A data type is (i) a domain of allowed values and (ii) a set of operations on these values.  Compiler signals an error if wrong operation is performed on data of a certain type. For example, char x,y,z; z = x*y is not allowed.
  • 7. 7  Examples Data Type Domain Operations boolean 0,1 and, or, =, etc. char ASCII =, <>, <, etc. integer -maxint to +maxint +, _, =, ==, <>, <, etc.
  • 8. 8  Simple Data types: also known as atomic data types  have no component parts. E.g. int, char, float, etc. 21 3.14 ‘a’
  • 9.  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
  • 10. 10  Structured Data types: can be broken into component parts. E.g. an object, array, set, file, etc. Example: a student object. A H M A D 20 C S C Name Age Branch A Component part
  • 11. There are many, but we named a few. We’ll learn these data structures in great detail! Array Linked List Tree Queue Stack Types of Data Structures
  • 12.  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 (This is the main motivation to learn and understand data structures)
  • 13. (Demonstrate using class room example!)  Navigating 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
  • 14.  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
  • 15.  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!
  • 16.  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
  • 17.  Problem: Find maximum of a, b, c  Algorithm  Input = a, b, c  Output = max  Process o Let max = a o If b > max then max = b o If c > max then max = c o Display max Order is very important!!!
  • 18.  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?
  • 19.  A sequence of steps to solve a problem  We need a way to express this sequence of steps 1. Natural language (NL) is an obvious choice, but not a good choice. Why? o NLs are notoriously ambiguous (unclear) 2. 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
  • 20.  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
  • 21.  Use PLs construct that are consistent with modern high level languages, e.g. C++, Java, ...  Use appropriate comments for clarity  Be simple and precise
  • 22.  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?
  • 23.  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?
  • 24.  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 “Welcome to CS204!” counter ← counter + 1 end while What will be the output if counter is initialised to 0, 7?
  • 25.  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 “Welcome to CS204!” end for What will be the output?
  • 26.  Loops (Repetition)  Post-condition loops o Do loops  do actions while condition  For example do print “Welcome to CS204!” counter ← counter + 1 while counter < 5 What will be the output, if counter was initialised to 10? The body of a post-condition loop must execute at least once
  • 27.  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)
  • 28.  Method returns  return value  For example integer sum ( integer num1, integer num2) start result ← num1 + num2 return result end
  • 29.  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).
  • 30.  Example 1: Determining even/odd number  A number divisible by 2 is considered an even number, while a number which is not divisible by 2 is considered an odd number. Write pseudo-code to display first N odd/even numbers.  Example 2: Computing Weekly Wages  Gross pay depends on the pay rate and the number of hours worked per week. However, if you work more than 40 hours, you get paid time-and-a-half for all hours worked over 40. Write the pseudo-code to compute gross pay given pay rate and hours worked
  • 31. Input range for num←0; num<=range; num←num+1 do if num % 2 = 0 then print num is even else print num is odd endif endfor
  • 32.  Example 1: Determining even/odd number ◦ A number divisible by 2 is considered an even number, while a number which is not divisible by 2 is considered an odd number. Write pseudo-code to display first N odd/even numbers.  Example 2: Computing Weekly Wages  Gross pay depends on the pay rate and the number of hours worked per week. However, if you work more than 40 hours, you get paid time-and-a-half for all hours worked over 40. Write the pseudo-code to compute gross pay given pay rate and hours worked
  • 33. Input range for num←0; num<=range; num←num+1 do if num % 2 = 0 then print num is even else print num is odd endif endfor
  • 34. Input hours_worked, pay_rate if hours_worked <= 40 then gross_pay ← pay_rate x hours_worked else basic_pay ← pay_rate x 40 over_time ← hours_worked – 40 over_time_pay ← 1.5 x pay_rate x over_time gross_pay ← basic_pay + over_time_pay endfor print gross_pay
  • 35. 1. Write an algorithm to find the largest of a set of numbers. You do not know the number of numbers. 2. Write an algorithm in pseudocode that finds the average of (n) numbers. For example numbers are [4,5,14,20,3,6]s