Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
CSE408
Fundamentals of Algorithms
Lecture #1
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
What is an algorithm?
An algorithm is a sequence of unambiguous instructions
for solving a problem, i.e., for obtaining a required
output for any legitimate input in a finite amount of time.
“computer”
problem
algorithm
input output
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Algorithm
 An algorithm is a sequence of unambiguous
instructions for solving a problem, i.e., for obtaining a
required output for any legitimate input in a finite
amount of time.
• Can be represented various forms
• Unambiguity/clearness
• Effectiveness
• Finiteness/termination
• Correctness
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Historical Perspective
 Euclid’s algorithm for finding the greatest common divisor
 Muhammad ibn Musa al-Khwarizmi – 9th century
mathematician
www.lib.virginia.edu/science/parshall/khwariz.html
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Notion of algorithm and problem
“computer”
algorithmic solution
(different from a conventional solution)
problem
algorithm
input
(or instance)
output
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Example of computational problem: sorting
 Statement of problem:
• Input: A sequence of n numbers <a1, a2, …, an>
• Output: A reordering of the input sequence <a´
1, a´
2, …, a´
n> so that a´
i
≤ a´
j whenever i < j
 Instance: The sequence <5, 3, 2, 8, 3>
 Algorithms:
• Selection sort
• Insertion sort
• Merge sort
• (many others)
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Selection Sort
 Input: array a[1],…,a[n]
 Output: array a sorted in non-decreasing order
 Algorithm:
for i=1 to n
swap a[i] with smallest of a[i],…,a[n]
• Is this unambiguous? Effective?
• See also pseudocode, section 3.1
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Some Well-known Computational Problems
 Sorting
 Searching
 Shortest paths in a graph
 Minimum spanning tree
 Primality testing
 Traveling salesman problem
 Knapsack problem
 Chess
 Towers of Hanoi
 Program termination
Some of these problems don’t have efficient algorithms,
or algorithms at all!
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Basic Issues Related to Algorithms
 How to design algorithms
 How to express algorithms
 Proving correctness
 Efficiency (or complexity) analysis
• Theoretical analysis
• Empirical analysis
 Optimality
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Algorithm design strategies
 Brute force
 Divide and conquer
 Decrease and conquer
 Transform and conquer
 Greedy approach
 Dynamic programming
 Backtracking and branch-and-bound
 Space and time tradeoffs
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Analysis of Algorithms
 How good is the algorithm?
• Correctness
• Time efficiency
• Space efficiency
 Does there exist a better algorithm?
• Lower bounds
• Optimality
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
What is an algorithm?
 Recipe, process, method, technique, procedure, routine,…
with the following requirements:
1. Finiteness
 terminates after a finite number of steps
2. Definiteness
 rigorously and unambiguously specified
3. Clearly specified input
 valid inputs are clearly specified
4. Clearly specified/expected output
 can be proved to produce the correct output given a valid input
5. Effectiveness
 steps are sufficiently simple and basic
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Why study algorithms?
 Theoretical importance
• the core of computer science
 Practical importance
• A practitioner’s toolkit of known algorithms
• Framework for designing and analyzing algorithms for new problems
Example: Google’s PageRank Technology
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Euclid’s Algorithm
Problem: Find gcd(m,n), the greatest common divisor of two
nonnegative, not both zero integers m and n
Examples: gcd(60,24) = 12, gcd(60,0) = 60, gcd(0,0) = ?
Euclid’s algorithm is based on repeated application of equality
gcd(m,n) = gcd(n, m mod n)
until the second number becomes 0, which makes the problem
trivial.
Example: gcd(60,24) = gcd(24,12) = gcd(12,0) = 12
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Two descriptions of Euclid’s algorithm
Step 1 If n = 0, return m and stop; otherwise go to Step 2
Step 2 Divide m by n and assign the value of the remainder to r
Step 3 Assign the value of n to m and the value of r to n. Go to
Step 1.
while n ≠ 0 do
r ← m mod n
m← n
n ← r
return m
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Fundamentals of Algorithmic Problem Solving
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Two main issues related to algorithms
 How to design algorithms
 How to analyze algorithm efficiency
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Algorithm design techniques/strategies
 Brute force
 Divide and conquer
 Decrease and conquer
 Transform and conquer
 Space and time tradeoffs
 Greedy approach
 Dynamic programming
 Iterative improvement
 Backtracking
 Branch and bound
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Analysis of algorithms
 How good is the algorithm?
• time efficiency
• space efficiency
• correctness ignored in this course
 Does there exist a better algorithm?
• lower bounds
• optimality
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Important problem types
 sorting
 searching
 string processing
 graph problems
 combinatorial problems
 geometric problems
 numerical problems
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Sorting (I)
 Rearrange the items of a given list in ascending order.
• Input: A sequence of n numbers <a1, a2, …, an>
• Output: A reordering <a´
1, a´
2, …, a´
n> of the input sequence such that a´
1≤
a´
2 ≤ … ≤ a´
n.
 Why sorting?
• Help searching
• Algorithms often use sorting as a key subroutine.
 Sorting key
• A specially chosen piece of information used to guide sorting. E.g., sort
student records by names.
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Sorting (II)
 Examples of sorting algorithms
• Selection sort
• Bubble sort
• Insertion sort
• Merge sort
• Heap sort …
 Evaluate sorting algorithm complexity: the number of key comparisons.
 Two properties
• Stability: A sorting algorithm is called stable if it preserves the relative order of any
two equal elements in its input.
• In place : A sorting algorithm is in place if it does not require extra memory,
except, possibly for a few memory units.
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Selection Sort
Algorithm SelectionSort(A[0..n-1])
//The algorithm sorts a given array by selection sort
//Input: An array A[0..n-1] of orderable elements
//Output: Array A[0..n-1] sorted in ascending order
for i  0 to n – 2 do
min  i
for j  i + 1 to n – 1 do
if A[j] < A[min]
min  j
swap A[i] and A[min]
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
Searching
 Find a given value, called a search key, in a given set.
 Examples of searching algorithms
• Sequential search
• Binary search …
Input: sorted array a_i < … < a_j and key x;
m (i+j)/2;
while i < j and x != a_m do
if x < a_m then j  m-1
else i  m+1;
if x = a_m then output a_m;
Time: O(log n)
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1
String Processing
 A string is a sequence of characters from an alphabet.
 Text strings: letters, numbers, and special characters.
 String matching: searching for a given word/pattern in a text.
Examples:
(i) searching for a word or phrase on WWW or in a
Word document
(ii) searching for a short read in the reference genomic
sequence
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1

More Related Content

PPT
divide and conquer ppt in Design and Analysis of Algorithms
PPTX
01 - Analysis of Efficiency.pptx
PPT
Ch04n
PPT
ch06-03-30-2018.ppt aaaaaaaaaaaaaaaaaaaaaa
PPTX
01 - Fundamentals of the Analysis of Algorithm Efficiency.pptx
PPTX
01 - Analysis of Efficiency.pptx
PPT
01 intro to algorithm--updated 2015
PPT
Ch6 transform and conquer
divide and conquer ppt in Design and Analysis of Algorithms
01 - Analysis of Efficiency.pptx
Ch04n
ch06-03-30-2018.ppt aaaaaaaaaaaaaaaaaaaaaa
01 - Fundamentals of the Analysis of Algorithm Efficiency.pptx
01 - Analysis of Efficiency.pptx
01 intro to algorithm--updated 2015
Ch6 transform and conquer

Similar to lecture 1(Fundamental of algorithms).pptx (20)

PPT
ch11.pptalgorithmalgorithmalgorithmalgorithm
PPTX
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
PPTX
AoA Lec Design of algorithm spresentation
PPT
Analysis of Algorithms
PPT
5261506.ppt
PPT
ch05-2018.03.02 ch05-2018.03.02ch05-2018.03.02
PPT
ch11-04-27-15.ppt
PDF
DAA Notes.pdf
PDF
Algorithms Lecture 3: Analysis of Algorithms II
PDF
Algorithm chapter 1
PPT
Lect01
PDF
PPTX
Class Greedy Algorithms Lecture Slide.pptx
PPTX
Unit -I Toc.pptx
PPT
Kk20503 1 introduction
ODP
Derivative Free Optimization
PDF
chapter1.pdf ......................................
PPT
Algorithms with-java-advanced-1.0
PPT
A Powerpoint Presentation on CPP Programming
PPTX
Unit 2 algorithm
ch11.pptalgorithmalgorithmalgorithmalgorithm
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
AoA Lec Design of algorithm spresentation
Analysis of Algorithms
5261506.ppt
ch05-2018.03.02 ch05-2018.03.02ch05-2018.03.02
ch11-04-27-15.ppt
DAA Notes.pdf
Algorithms Lecture 3: Analysis of Algorithms II
Algorithm chapter 1
Lect01
Class Greedy Algorithms Lecture Slide.pptx
Unit -I Toc.pptx
Kk20503 1 introduction
Derivative Free Optimization
chapter1.pdf ......................................
Algorithms with-java-advanced-1.0
A Powerpoint Presentation on CPP Programming
Unit 2 algorithm
Ad

Recently uploaded (20)

PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PDF
Design Guidelines and solutions for Plastics parts
PPTX
Module 8- Technological and Communication Skills.pptx
PPTX
Fundamentals of Mechanical Engineering.pptx
PDF
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
PPTX
"Array and Linked List in Data Structures with Types, Operations, Implementat...
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
PDF
Abrasive, erosive and cavitation wear.pdf
PPTX
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
PDF
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PPTX
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
PDF
737-MAX_SRG.pdf student reference guides
PPTX
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
PDF
Soil Improvement Techniques Note - Rabbi
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PDF
August 2025 - Top 10 Read Articles in Network Security & Its Applications
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
Feature types and data preprocessing steps
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Design Guidelines and solutions for Plastics parts
Module 8- Technological and Communication Skills.pptx
Fundamentals of Mechanical Engineering.pptx
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
"Array and Linked List in Data Structures with Types, Operations, Implementat...
Fundamentals of safety and accident prevention -final (1).pptx
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
Abrasive, erosive and cavitation wear.pdf
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
737-MAX_SRG.pdf student reference guides
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
Soil Improvement Techniques Note - Rabbi
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
August 2025 - Top 10 Read Articles in Network Security & Its Applications
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Feature types and data preprocessing steps
Ad

lecture 1(Fundamental of algorithms).pptx

  • 1. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 CSE408 Fundamentals of Algorithms Lecture #1
  • 2. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. “computer” problem algorithm input output
  • 3. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Algorithm  An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. • Can be represented various forms • Unambiguity/clearness • Effectiveness • Finiteness/termination • Correctness
  • 4. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Historical Perspective  Euclid’s algorithm for finding the greatest common divisor  Muhammad ibn Musa al-Khwarizmi – 9th century mathematician www.lib.virginia.edu/science/parshall/khwariz.html
  • 5. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Notion of algorithm and problem “computer” algorithmic solution (different from a conventional solution) problem algorithm input (or instance) output
  • 6. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Example of computational problem: sorting  Statement of problem: • Input: A sequence of n numbers <a1, a2, …, an> • Output: A reordering of the input sequence <a´ 1, a´ 2, …, a´ n> so that a´ i ≤ a´ j whenever i < j  Instance: The sequence <5, 3, 2, 8, 3>  Algorithms: • Selection sort • Insertion sort • Merge sort • (many others)
  • 7. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Selection Sort  Input: array a[1],…,a[n]  Output: array a sorted in non-decreasing order  Algorithm: for i=1 to n swap a[i] with smallest of a[i],…,a[n] • Is this unambiguous? Effective? • See also pseudocode, section 3.1
  • 8. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Some Well-known Computational Problems  Sorting  Searching  Shortest paths in a graph  Minimum spanning tree  Primality testing  Traveling salesman problem  Knapsack problem  Chess  Towers of Hanoi  Program termination Some of these problems don’t have efficient algorithms, or algorithms at all!
  • 9. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Basic Issues Related to Algorithms  How to design algorithms  How to express algorithms  Proving correctness  Efficiency (or complexity) analysis • Theoretical analysis • Empirical analysis  Optimality
  • 10. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Algorithm design strategies  Brute force  Divide and conquer  Decrease and conquer  Transform and conquer  Greedy approach  Dynamic programming  Backtracking and branch-and-bound  Space and time tradeoffs
  • 11. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Analysis of Algorithms  How good is the algorithm? • Correctness • Time efficiency • Space efficiency  Does there exist a better algorithm? • Lower bounds • Optimality
  • 12. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 What is an algorithm?  Recipe, process, method, technique, procedure, routine,… with the following requirements: 1. Finiteness  terminates after a finite number of steps 2. Definiteness  rigorously and unambiguously specified 3. Clearly specified input  valid inputs are clearly specified 4. Clearly specified/expected output  can be proved to produce the correct output given a valid input 5. Effectiveness  steps are sufficiently simple and basic
  • 13. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Why study algorithms?  Theoretical importance • the core of computer science  Practical importance • A practitioner’s toolkit of known algorithms • Framework for designing and analyzing algorithms for new problems Example: Google’s PageRank Technology
  • 14. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Euclid’s Algorithm Problem: Find gcd(m,n), the greatest common divisor of two nonnegative, not both zero integers m and n Examples: gcd(60,24) = 12, gcd(60,0) = 60, gcd(0,0) = ? Euclid’s algorithm is based on repeated application of equality gcd(m,n) = gcd(n, m mod n) until the second number becomes 0, which makes the problem trivial. Example: gcd(60,24) = gcd(24,12) = gcd(12,0) = 12
  • 15. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Two descriptions of Euclid’s algorithm Step 1 If n = 0, return m and stop; otherwise go to Step 2 Step 2 Divide m by n and assign the value of the remainder to r Step 3 Assign the value of n to m and the value of r to n. Go to Step 1. while n ≠ 0 do r ← m mod n m← n n ← r return m
  • 16. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Fundamentals of Algorithmic Problem Solving
  • 17. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Two main issues related to algorithms  How to design algorithms  How to analyze algorithm efficiency
  • 18. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Algorithm design techniques/strategies  Brute force  Divide and conquer  Decrease and conquer  Transform and conquer  Space and time tradeoffs  Greedy approach  Dynamic programming  Iterative improvement  Backtracking  Branch and bound
  • 19. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Analysis of algorithms  How good is the algorithm? • time efficiency • space efficiency • correctness ignored in this course  Does there exist a better algorithm? • lower bounds • optimality
  • 20. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Important problem types  sorting  searching  string processing  graph problems  combinatorial problems  geometric problems  numerical problems
  • 21. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Sorting (I)  Rearrange the items of a given list in ascending order. • Input: A sequence of n numbers <a1, a2, …, an> • Output: A reordering <a´ 1, a´ 2, …, a´ n> of the input sequence such that a´ 1≤ a´ 2 ≤ … ≤ a´ n.  Why sorting? • Help searching • Algorithms often use sorting as a key subroutine.  Sorting key • A specially chosen piece of information used to guide sorting. E.g., sort student records by names.
  • 22. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Sorting (II)  Examples of sorting algorithms • Selection sort • Bubble sort • Insertion sort • Merge sort • Heap sort …  Evaluate sorting algorithm complexity: the number of key comparisons.  Two properties • Stability: A sorting algorithm is called stable if it preserves the relative order of any two equal elements in its input. • In place : A sorting algorithm is in place if it does not require extra memory, except, possibly for a few memory units.
  • 23. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Selection Sort Algorithm SelectionSort(A[0..n-1]) //The algorithm sorts a given array by selection sort //Input: An array A[0..n-1] of orderable elements //Output: Array A[0..n-1] sorted in ascending order for i  0 to n – 2 do min  i for j  i + 1 to n – 1 do if A[j] < A[min] min  j swap A[i] and A[min]
  • 24. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 Searching  Find a given value, called a search key, in a given set.  Examples of searching algorithms • Sequential search • Binary search … Input: sorted array a_i < … < a_j and key x; m (i+j)/2; while i < j and x != a_m do if x < a_m then j  m-1 else i  m+1; if x = a_m then output a_m; Time: O(log n)
  • 25. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1 String Processing  A string is a sequence of characters from an alphabet.  Text strings: letters, numbers, and special characters.  String matching: searching for a given word/pattern in a text. Examples: (i) searching for a word or phrase on WWW or in a Word document (ii) searching for a short read in the reference genomic sequence
  • 26. Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “Introduction to the Design & Analysis of Algorithms,” 2nd ed., Ch. 1