Problem solving using computers - Chapter 1

PROBLEM-SOLVING
USING COMPUTERS
- CHAPTER 1
PROBLEM
SOLVING
USING
COMPUTERS
INTRODUCTION
Problem-solving is transforming the description of a
problem into a solution by using our knowledge of the
problem domain and relying on our ability to select and
use appropriate problem-solving strategies, techniques,
and tools.
When we write a program, we are actually writing
instructions for the computer to solve something for us.
A COMPUTER IS A TOOL TO SOLVE A PROBLEM
PROGRAMMING IS A PROBLEM-SOLVING ACTIVITY
PROBLEM DEFINITION (Problem statement)
1
PROBLEM ANALYSIS (Identify Input, Output,
Constraints, Formulas to be used (if any)
2
COMPILATION & EXECUTION
4 CODING
3
DEBUGGING & TESTING
5
DOCUMENTATION
6
STEPS IN PROBLEM-
SOLVING
7
PROBLEM APPROACH (Algorithm, Pseudo
code, Flowchart)
A set of finite rules or
instructions to be followed in
calculations or other problem-
solving operations
ALGORITHM
Write down the steps for making peanut butter and jelly sandwich
TASK
Ingredients - Bread, Peanut butter, Jelly
Step 1: Start preparation
Step 2: Take 2 slices of bread.
Step 3: Apply peanut butter on one side of a slice.
Step 3: Apply jelly on one side of the other slice.
Step 4: Press both slices of bread together.
Step 5: Serve
CONCLUSION: Algorithm is step-wise idea of what is to be done to
get a desired output from the given input
Algorithm to add 3 numbers and print their sum
EXAMPLE
Variables - n1 | n2 | n3 | sum
START
Declare 3 integer variables n1, n2 and n3.
Take the three numbers, to be added, as
inputs in variables n1, n2, and n3 respectively.
Declare an integer variable sum to store the
resultant sum of the 3 numbers.
Add the 3 numbers and store the result in the
variable sum. (n1 + n2 + n3)
Print the value of the variable sum
END
1.
2.
3.
4.
5.
6.
7.
It should terminate after a finite time.
It should produce at least one output.
It should take zero or more input.
It should be deterministic means giving the same
output for the same input case.
Every step in the algorithm must be effective i.e.
every step should do some work.
PROPERTIES OF ALGORITHM
Problem solving using computers - Chapter 1
CHECK FOR LANGUAGE INDEPENDENCY
// C PROGRAM
#include <stdio.h>
int main()
{
int n1, n2, n3;
scanf("%d %d %d",&n1,&n2,&n3);
int sum;
sum = n1+n2+n3;
printf("%d",sum);
return 0;
}
// PYTHON PROGRAM
if __name__ == "__main__":
n1 = n2 = n3 = 0
n1 = int(input())
n2 = int(input())
n3 = int(input())
sum = 0
sum = n1+n2+n3
print(sum)
// PYTHON PROGRAM
if __name__ == "__main__":
n1 = int(input())
n2 = int(input())
n3 = int(input())
sum = n1+n2+n3
print(sum)
FLOWCHART
PSEUDO-CODE
HOW TO EXPRESS AN ALGORITHM?
FLOWCHART
A flowchart is a graphical representation of an
algorithm. Programmers often use it as a program-
planning tool to solve a problem.
It makes use of symbols that are connected among them
to indicate the flow of information and processing.
The process of drawing a flowchart for an algorithm is
known as “flowcharting”.
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Draw a flowchart to add 3 numbers and print their sum
EXAMPLE
Refer the below algorithm
START
Declare 3 integer variables n1, n2 and n3.
Take the three numbers, to be added, as
inputs in variables n1, n2, and n3 respectively.
Declare an integer variable sum to store the
resultant sum of the 3 numbers.
Add the 3 numbers and store the result in the
variable sum. (n1 + n2 + n3)
Print the value of the variable sum
END
1.
2.
3.
4.
5.
6.
7.
Problem solving using computers - Chapter 1
PSEUDO-CODE
The pseudocode is an informal way of writing a
program for better human understanding.
It is written in simple English, making the complex
program easier to understand.
Pseudocode cannot be compiled or interpreted.
It is a methodology that allows the programmer to
represent the implementation of an algorithm.
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Write only one statement per line
Capitalize initial keyword
Indent to show hierarchy
End multiline structures
Keep statements language independent
It gives us the sketch of the program before actual
coding
Use the naming domain of the problem, not that of
the implementation. For instance: “Append the last
name to the first name” instead of “name = first+
last.”
Keep it simple, concise and readable.
RULES OF PSEUDO-CODE
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
EXAMPLE 2: WRITE THE PSEUDO CODE TO FIND THE GREATEST OF TWO NUMBERS
BEGIN
READ A,B
IF (A>B) THEN
DISPLAY a is greater
ELSE
DISPLAY b is greater
END IF
END
Problem solving using computers - Chapter 1
BRUTE FORCE ALGORITHM
Brute Force Algorithms are exactly what they sound like –
straightforward methods of solving a problem that relies on
sheer computing power and trying every possibility rather
than advanced techniques to improve efficiency.
Brute Force algorithm is a typical problem-solving
technique where the possible solution for a problem is
uncovered by checking each answer one by one, by
determining whether the result satisfies the statement of a
problem or not.
Bubble sort is one of the easiest and brute force sorting
algorithm.
RECURSIVE ALGORITHM
A recursive algorithm calls itself with smaller input values
and returns the result for the current input by carrying out
basic operations on the returned value for the smaller
input.
A recursive algorithm is an algorithm that calls itself with
"smaller (or simpler)" input values, and which obtains the
result for the current input by applying simple operations
to the returned value for the smaller (or simpler) input.
Generation of factorial, Fibonacci number series are
examples of recursive algorithms.
GREEDY ALGORITHM
Greedy is an algorithmic paradigm that builds up a solution
piece by piece, always choosing the next piece that offers
the most obvious and immediate benefit. So the problems
where choosing locally optimal also leads to the global
solution being the best fit for Greedy.
For example)
Fractional Knapsack Problem
DYNAMIC ALGORITHM
Dynamic Programming is a technique in computer
programming that helps to efficiently solve a class of
problems that have overlapping subproblems and optimal
substructure properties.
The main use of dynamic programming is to solve
optimization problems. Here, optimization problems mean
that when we are trying to find out the minimum or the
maximum solution to a problem. Dynamic programming
guarantees finding the optimal solution to a problem if the
solution exists.
A top-down approach is about breaking down a system into the
subsystems that make it up. The process can be repeated to
break down subsystems into low-level elements like classes and
methods. This approach can be applied to all levels from high-
level system architecture to low-level functionality
implementation, just to remember to start from the top. It
doesn’t necessarily always be the absolute top.
Top-Down Model is followed by structural programming
languages like C, Fortran etc.
TOP DOWN APPROACH
Problem solving using computers - Chapter 1
In this design, individual parts of the system are specified in
detail. The parts are linked to form larger components, which
are in turn linked until a complete system is formed.
Object-oriented language such as C++, Python, or Java uses a
bottom-up approach where each object is identified first.
BOTTOM UP APPROACH
Problem solving using computers - Chapter 1
So simple. It's because you first defines a class and it's functions. Then you initialise
an object of that class and calls functions as per the need. Now, though process looks
like to-bottom but the execution takes place in bottom-up approach. While executing,
execution flow find object initialisation first and then it looks up for declared class
and then functions.
WHY DO OOPS FOLLOW THE BOTTOM-UP APPROACH?
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
obj1 = Person("Harry", 36)
obj2 = Person("Styles", 35)
print(obj1.name)
print(obj1.age)
print("------")
print(obj2.name)
print(obj2.age)
IS PYTHON AN OBJECT-ORIENTED PROGRAMMING
LANGUAGE?
Python is both procedural and has object-oriented features, as well as some aspects of
functional programming. That is what is meant when one says that Python is a multi-
paradigm.
Python are multi-paradigm, you can write programs or libraries that are largely
procedural, object-oriented, or functional in all of these languages. It depends on
what you mean by functional. Python does have some features of a functional
language.
OOP's concepts like, Classes,Encapsulation,Polymorphism, Inheritance etc.. in Python
makes it as a object oriented programming language.
IS PYTHON AN OBJECT-ORIENTED PROGRAMMING
LANGUAGE?
TIME COMPLEXITY
SPACE COMPLEXITY
MEASURES FOR THE EFFICIENCY OF AN ALGORITHM
SWAP TWO NUMBERS - METHOD 1
(Using third variable)
x = 10
y = 50
# Swapping of two variables
# Using third variable
temp = x
x = y
y = temp
print("Value of x:", x)
print("Value of y:", y)
x = 10
y = 50
# Swapping of two variables
# without using third variable
x, y = y, x
print("Value of x:", x)
print("Value of y:", y)
SWAP TWO NUMBERS - METHOD 2
(Using comma method)
NOW IT'S TIME TO
PRACTICE
PROBLEM STATEMENT - Airport security officials have
confiscated several item of the passengers at the security check
point. All the items have been dumped into a huge box (array). Each
item possesses a certain amount of risk[0,1,2]. Here, the risk
severity of the items represent an array[] of N number of integer
values. The task here is to sort the items based on their levels of
risk in the array. The risk values range from 0 to 2.
Example :
Input :
7 -> Value of N
[1,0,2,0,1,0,2]-> Element of arr[0] to arr[N-1], while input each
element is separated by a new line.
Output :
0 0 0 1 1 2 2 -> Element after sorting based on risk severity
Explanation:
In the above example, the input is an array of size N consisting of
only 0’s, 1’s, and 2s. The output is a sorted array from 0 to 2 based
on risk severity.
mins
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
arr.sort()
for i in range(n):
print(arr[i], end = " ")
PSEUDOCODE -
BEGIN
READ n
INITIALIZE list arr[]
FOR i <-- 0 to n-1
APPEND elements to the list
SORT the array list arr[]
FOR i <-- 0 to n-1
PRINT elements of the array list
END
Thank you!
1 sur 49

Recommandé

Problem solving using computers - Unit 1 - Study material par
Problem solving using computers - Unit 1 - Study materialProblem solving using computers - Unit 1 - Study material
Problem solving using computers - Unit 1 - Study materialTo Sum It Up
11 vues12 diapositives
3 algorithm-and-flowchart par
3 algorithm-and-flowchart3 algorithm-and-flowchart
3 algorithm-and-flowchartRohit Shrivastava
15.1K vues37 diapositives
Algorithms and Flowcharts par
Algorithms and FlowchartsAlgorithms and Flowcharts
Algorithms and FlowchartsDeva Singh
310.1K vues31 diapositives
Daa chapter 1 par
Daa chapter 1Daa chapter 1
Daa chapter 1B.Kirron Reddi
90 vues22 diapositives
UNIT-1-PPTS-DAA.ppt par
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptracha49
384 vues87 diapositives
UNIT-1-PPTS-DAA.ppt par
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptSamridhiGulati4
6 vues87 diapositives

Contenu connexe

Similaire à Problem solving using computers - Chapter 1

Algorithmsandflowcharts1 par
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1Emmanuel Alimpolos
2.9K vues32 diapositives
DAA-Unit1.pptx par
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptxNishaS88
20 vues65 diapositives
Algorithmsandflowcharts1 par
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1ወዲ ህዝቢ
41 vues32 diapositives
Algorithmsandflowcharts1 par
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1rajnidhiman
2.5K vues32 diapositives
UNIT-2-PPTS-DAA.ppt par
UNIT-2-PPTS-DAA.pptUNIT-2-PPTS-DAA.ppt
UNIT-2-PPTS-DAA.pptGovindUpadhyay25
118 vues82 diapositives
Lecture 01-2.ppt par
Lecture 01-2.pptLecture 01-2.ppt
Lecture 01-2.pptRaoHamza24
4 vues24 diapositives

Similaire à Problem solving using computers - Chapter 1 (20)

DAA-Unit1.pptx par NishaS88
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptx
NishaS8820 vues
Algorithmsandflowcharts1 par rajnidhiman
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1
rajnidhiman2.5K vues
01 Algorithms And Flowcharts.ppt par FerdieBalang
01 Algorithms And Flowcharts.ppt01 Algorithms And Flowcharts.ppt
01 Algorithms And Flowcharts.ppt
FerdieBalang55 vues
maXbox Starter 36 Software Testing par Max Kleiner
maXbox Starter 36 Software TestingmaXbox Starter 36 Software Testing
maXbox Starter 36 Software Testing
Max Kleiner695 vues
Jeremiah Yancy - Objectives for Software design and testing par Jeremiah Yancy
Jeremiah Yancy - Objectives for Software design and testingJeremiah Yancy - Objectives for Software design and testing
Jeremiah Yancy - Objectives for Software design and testing
Jeremiah Yancy40 vues
TIME EXECUTION OF DIFFERENT SORTED ALGORITHMS par Tanya Makkar
TIME EXECUTION   OF  DIFFERENT SORTED ALGORITHMSTIME EXECUTION   OF  DIFFERENT SORTED ALGORITHMS
TIME EXECUTION OF DIFFERENT SORTED ALGORITHMS
Tanya Makkar223 vues
Java conceptual learning material par ArthyR3
Java conceptual learning materialJava conceptual learning material
Java conceptual learning material
ArthyR3288 vues
Week1 programming challenges par Dhanu Srikar
Week1 programming challengesWeek1 programming challenges
Week1 programming challenges
Dhanu Srikar237 vues

Plus de To Sum It Up

DSA Question Bank par
DSA Question BankDSA Question Bank
DSA Question BankTo Sum It Up
11 vues17 diapositives
Web API - Overview par
Web API - OverviewWeb API - Overview
Web API - OverviewTo Sum It Up
3 vues3 diapositives
CSS Overview par
CSS OverviewCSS Overview
CSS OverviewTo Sum It Up
2 vues3 diapositives
HTML Overview par
HTML OverviewHTML Overview
HTML OverviewTo Sum It Up
2 vues4 diapositives
EM Algorithm par
EM AlgorithmEM Algorithm
EM AlgorithmTo Sum It Up
24 vues24 diapositives
User story mapping par
User story mappingUser story mapping
User story mappingTo Sum It Up
7 vues4 diapositives

Dernier

dummy.pptx par
dummy.pptxdummy.pptx
dummy.pptxJamesLamp
7 vues2 diapositives
unit 1.pptx par
unit 1.pptxunit 1.pptx
unit 1.pptxrrbornarecm
5 vues53 diapositives
Renewal Projects in Seismic Construction par
Renewal Projects in Seismic ConstructionRenewal Projects in Seismic Construction
Renewal Projects in Seismic ConstructionEngineering & Seismic Construction
6 vues8 diapositives
Design_Discover_Develop_Campaign.pptx par
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptxShivanshSeth6
55 vues20 diapositives
GDSC Mikroskil Members Onboarding 2023.pdf par
GDSC Mikroskil Members Onboarding 2023.pdfGDSC Mikroskil Members Onboarding 2023.pdf
GDSC Mikroskil Members Onboarding 2023.pdfgdscmikroskil
68 vues62 diapositives
Robotics in construction enterprise par
Robotics in construction enterpriseRobotics in construction enterprise
Robotics in construction enterpriseKhalid Abdel Naser Abdel Rahim
5 vues1 diapositive

Dernier(20)

Design_Discover_Develop_Campaign.pptx par ShivanshSeth6
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptx
ShivanshSeth655 vues
GDSC Mikroskil Members Onboarding 2023.pdf par gdscmikroskil
GDSC Mikroskil Members Onboarding 2023.pdfGDSC Mikroskil Members Onboarding 2023.pdf
GDSC Mikroskil Members Onboarding 2023.pdf
gdscmikroskil68 vues
Integrating Sustainable Development Goals (SDGs) in School Education par SheetalTank1
Integrating Sustainable Development Goals (SDGs) in School EducationIntegrating Sustainable Development Goals (SDGs) in School Education
Integrating Sustainable Development Goals (SDGs) in School Education
SheetalTank111 vues
MongoDB.pdf par ArthyR3
MongoDB.pdfMongoDB.pdf
MongoDB.pdf
ArthyR351 vues
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... par csegroupvn
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
csegroupvn13 vues
REACTJS.pdf par ArthyR3
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
ArthyR337 vues
Design of machine elements-UNIT 3.pptx par gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy38 vues
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx par lwang78
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
lwang78188 vues
Créativité dans le design mécanique à l’aide de l’optimisation topologique par LIEGE CREATIVE
Créativité dans le design mécanique à l’aide de l’optimisation topologiqueCréativité dans le design mécanique à l’aide de l’optimisation topologique
Créativité dans le design mécanique à l’aide de l’optimisation topologique
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth par Innomantra
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth
Innomantra 20 vues

Problem solving using computers - Chapter 1

  • 1. PROBLEM-SOLVING USING COMPUTERS - CHAPTER 1 PROBLEM SOLVING USING COMPUTERS
  • 2. INTRODUCTION Problem-solving is transforming the description of a problem into a solution by using our knowledge of the problem domain and relying on our ability to select and use appropriate problem-solving strategies, techniques, and tools. When we write a program, we are actually writing instructions for the computer to solve something for us. A COMPUTER IS A TOOL TO SOLVE A PROBLEM PROGRAMMING IS A PROBLEM-SOLVING ACTIVITY
  • 3. PROBLEM DEFINITION (Problem statement) 1 PROBLEM ANALYSIS (Identify Input, Output, Constraints, Formulas to be used (if any) 2 COMPILATION & EXECUTION 4 CODING 3 DEBUGGING & TESTING 5 DOCUMENTATION 6 STEPS IN PROBLEM- SOLVING 7 PROBLEM APPROACH (Algorithm, Pseudo code, Flowchart)
  • 4. A set of finite rules or instructions to be followed in calculations or other problem- solving operations ALGORITHM
  • 5. Write down the steps for making peanut butter and jelly sandwich TASK Ingredients - Bread, Peanut butter, Jelly
  • 6. Step 1: Start preparation Step 2: Take 2 slices of bread. Step 3: Apply peanut butter on one side of a slice. Step 3: Apply jelly on one side of the other slice. Step 4: Press both slices of bread together. Step 5: Serve CONCLUSION: Algorithm is step-wise idea of what is to be done to get a desired output from the given input
  • 7. Algorithm to add 3 numbers and print their sum EXAMPLE Variables - n1 | n2 | n3 | sum
  • 8. START Declare 3 integer variables n1, n2 and n3. Take the three numbers, to be added, as inputs in variables n1, n2, and n3 respectively. Declare an integer variable sum to store the resultant sum of the 3 numbers. Add the 3 numbers and store the result in the variable sum. (n1 + n2 + n3) Print the value of the variable sum END 1. 2. 3. 4. 5. 6. 7.
  • 9. It should terminate after a finite time. It should produce at least one output. It should take zero or more input. It should be deterministic means giving the same output for the same input case. Every step in the algorithm must be effective i.e. every step should do some work. PROPERTIES OF ALGORITHM
  • 11. CHECK FOR LANGUAGE INDEPENDENCY // C PROGRAM #include <stdio.h> int main() { int n1, n2, n3; scanf("%d %d %d",&n1,&n2,&n3); int sum; sum = n1+n2+n3; printf("%d",sum); return 0; } // PYTHON PROGRAM if __name__ == "__main__": n1 = n2 = n3 = 0 n1 = int(input()) n2 = int(input()) n3 = int(input()) sum = 0 sum = n1+n2+n3 print(sum) // PYTHON PROGRAM if __name__ == "__main__": n1 = int(input()) n2 = int(input()) n3 = int(input()) sum = n1+n2+n3 print(sum)
  • 13. FLOWCHART A flowchart is a graphical representation of an algorithm. Programmers often use it as a program- planning tool to solve a problem. It makes use of symbols that are connected among them to indicate the flow of information and processing. The process of drawing a flowchart for an algorithm is known as “flowcharting”.
  • 16. Draw a flowchart to add 3 numbers and print their sum EXAMPLE Refer the below algorithm
  • 17. START Declare 3 integer variables n1, n2 and n3. Take the three numbers, to be added, as inputs in variables n1, n2, and n3 respectively. Declare an integer variable sum to store the resultant sum of the 3 numbers. Add the 3 numbers and store the result in the variable sum. (n1 + n2 + n3) Print the value of the variable sum END 1. 2. 3. 4. 5. 6. 7.
  • 19. PSEUDO-CODE The pseudocode is an informal way of writing a program for better human understanding. It is written in simple English, making the complex program easier to understand. Pseudocode cannot be compiled or interpreted. It is a methodology that allows the programmer to represent the implementation of an algorithm.
  • 22. Write only one statement per line Capitalize initial keyword Indent to show hierarchy End multiline structures Keep statements language independent It gives us the sketch of the program before actual coding Use the naming domain of the problem, not that of the implementation. For instance: “Append the last name to the first name” instead of “name = first+ last.” Keep it simple, concise and readable. RULES OF PSEUDO-CODE
  • 29. EXAMPLE 2: WRITE THE PSEUDO CODE TO FIND THE GREATEST OF TWO NUMBERS BEGIN READ A,B IF (A>B) THEN DISPLAY a is greater ELSE DISPLAY b is greater END IF END
  • 31. BRUTE FORCE ALGORITHM Brute Force Algorithms are exactly what they sound like – straightforward methods of solving a problem that relies on sheer computing power and trying every possibility rather than advanced techniques to improve efficiency. Brute Force algorithm is a typical problem-solving technique where the possible solution for a problem is uncovered by checking each answer one by one, by determining whether the result satisfies the statement of a problem or not. Bubble sort is one of the easiest and brute force sorting algorithm.
  • 32. RECURSIVE ALGORITHM A recursive algorithm calls itself with smaller input values and returns the result for the current input by carrying out basic operations on the returned value for the smaller input. A recursive algorithm is an algorithm that calls itself with "smaller (or simpler)" input values, and which obtains the result for the current input by applying simple operations to the returned value for the smaller (or simpler) input. Generation of factorial, Fibonacci number series are examples of recursive algorithms.
  • 33. GREEDY ALGORITHM Greedy is an algorithmic paradigm that builds up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit. So the problems where choosing locally optimal also leads to the global solution being the best fit for Greedy. For example) Fractional Knapsack Problem
  • 34. DYNAMIC ALGORITHM Dynamic Programming is a technique in computer programming that helps to efficiently solve a class of problems that have overlapping subproblems and optimal substructure properties. The main use of dynamic programming is to solve optimization problems. Here, optimization problems mean that when we are trying to find out the minimum or the maximum solution to a problem. Dynamic programming guarantees finding the optimal solution to a problem if the solution exists.
  • 35. A top-down approach is about breaking down a system into the subsystems that make it up. The process can be repeated to break down subsystems into low-level elements like classes and methods. This approach can be applied to all levels from high- level system architecture to low-level functionality implementation, just to remember to start from the top. It doesn’t necessarily always be the absolute top. Top-Down Model is followed by structural programming languages like C, Fortran etc. TOP DOWN APPROACH
  • 37. In this design, individual parts of the system are specified in detail. The parts are linked to form larger components, which are in turn linked until a complete system is formed. Object-oriented language such as C++, Python, or Java uses a bottom-up approach where each object is identified first. BOTTOM UP APPROACH
  • 39. So simple. It's because you first defines a class and it's functions. Then you initialise an object of that class and calls functions as per the need. Now, though process looks like to-bottom but the execution takes place in bottom-up approach. While executing, execution flow find object initialisation first and then it looks up for declared class and then functions. WHY DO OOPS FOLLOW THE BOTTOM-UP APPROACH?
  • 40. class Person: def __init__(self, name, age): self.name = name self.age = age obj1 = Person("Harry", 36) obj2 = Person("Styles", 35) print(obj1.name) print(obj1.age) print("------") print(obj2.name) print(obj2.age)
  • 41. IS PYTHON AN OBJECT-ORIENTED PROGRAMMING LANGUAGE?
  • 42. Python is both procedural and has object-oriented features, as well as some aspects of functional programming. That is what is meant when one says that Python is a multi- paradigm. Python are multi-paradigm, you can write programs or libraries that are largely procedural, object-oriented, or functional in all of these languages. It depends on what you mean by functional. Python does have some features of a functional language. OOP's concepts like, Classes,Encapsulation,Polymorphism, Inheritance etc.. in Python makes it as a object oriented programming language. IS PYTHON AN OBJECT-ORIENTED PROGRAMMING LANGUAGE?
  • 43. TIME COMPLEXITY SPACE COMPLEXITY MEASURES FOR THE EFFICIENCY OF AN ALGORITHM
  • 44. SWAP TWO NUMBERS - METHOD 1 (Using third variable) x = 10 y = 50 # Swapping of two variables # Using third variable temp = x x = y y = temp print("Value of x:", x) print("Value of y:", y) x = 10 y = 50 # Swapping of two variables # without using third variable x, y = y, x print("Value of x:", x) print("Value of y:", y) SWAP TWO NUMBERS - METHOD 2 (Using comma method)
  • 45. NOW IT'S TIME TO PRACTICE
  • 46. PROBLEM STATEMENT - Airport security officials have confiscated several item of the passengers at the security check point. All the items have been dumped into a huge box (array). Each item possesses a certain amount of risk[0,1,2]. Here, the risk severity of the items represent an array[] of N number of integer values. The task here is to sort the items based on their levels of risk in the array. The risk values range from 0 to 2. Example : Input : 7 -> Value of N [1,0,2,0,1,0,2]-> Element of arr[0] to arr[N-1], while input each element is separated by a new line. Output : 0 0 0 1 1 2 2 -> Element after sorting based on risk severity Explanation: In the above example, the input is an array of size N consisting of only 0’s, 1’s, and 2s. The output is a sorted array from 0 to 2 based on risk severity.
  • 47. mins
  • 48. n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr.sort() for i in range(n): print(arr[i], end = " ") PSEUDOCODE - BEGIN READ n INITIALIZE list arr[] FOR i <-- 0 to n-1 APPEND elements to the list SORT the array list arr[] FOR i <-- 0 to n-1 PRINT elements of the array list END