SlideShare a Scribd company logo
1 of 34
Download to read offline
CS303— Computer Algorithms

Instructor:
   Dr. Yanxia Jia (yjia@ashland.edu)

Course web page
http://www.ashland.edu/~yjia/Courses/CS303/S05_CS303_Syl.html
Why Study Algorithms?
Al Khawarizmi
   “A great Iranian mathematician, geographer and astronomer. He
   introduced the zero, negative numbers, algebra, and the decimal
   system to the West. He also invented mathematical programming
   using a set of instructions to perform complex calculations. The term
   algorithm is named after a variation of his name, Algorithmi. “
What is it?
   Briefly speaking, algorithms are procedure solution to problems.
   Algorithms are not answers but rather precisely defined procedures for
   getting answers. (Example of sorting 3 numbers.)
Cornerstone of computer science. Programs will not exist without
algorithms.
Algorithm design techniques, or problem-solving strategies, are
useful in fields beyond computer science.


                                                                           2
Algorithms
   An algorithm is a sequence of unambiguous instructions for
   solving a computational problem, i.e., for obtaining a required
   output for any legitimate input in a finite amount of time.

                         problem


                         algorithm



input                   “computer”                   output


                                                                     3
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)
                                                                     4
Properties of Algorithms
What distinguish an algorithm from a recipe, process, method,
technique, procedure, routine…?
   Finiteness
   terminates after a finite number of steps
   Definiteness
   Each step must be rigorously and unambiguously specified.
            -e.g., ”stir until lumpy”
   Input
   Valid inputs must be clearly specified.
   Output
   The data that result upon completion of the algorithm must be specified.
   Effectiveness
   Steps must be sufficiently simple and basic.
            -e.g., check if 2 is the largest integer n for which there is a solution to
       the equation xn + yn = zn in positive integers x, y, and z


                                                                                    5
Examples
Is the following a legitimate algorithm?

     i   1
     While (i <= 10) do
         a   i+1
         Print the value of a
     End of loop
     Stop




                                           6
Examples of Algorithms – Computing the
  Greatest Common Divisor of Two Integers
gcd(m, n): the largest integer that divides both m
and n.
First try -- Euclid’s algorithm: gcd(m, n) = gcd(n, m mod n)
   Step1: If n = 0, return the value of m as the answer
   and stop; otherwise, proceed to Step 2.
   Step2: 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.


                                                         7
Methods of Specifying an Algorithm
Natural language
  Ambiguous
  “Mike ate his sandwich on a bed of lettuce.”

Pseudocode
  A mixture of a natural language and programming
  language-like structures
  Precise and succinct.
  Pseudocode in this course
     omits declarations of variables
     use indentation to show the scope of such statements as
     for, if, and while.
     use      for assignment
                                                               8
Pseudocode of Euclid’s Algorithm
Algorithm Euclid(m, n)
//Computes gcd(m, n) by Euclid’s algorithm
//Input: Two nonnegative, not-both-zero integers m and n
//Output: Greatest common divisor of m and n
while n ‡ 0 do
   r    m mod n
   m     n
   n    r
return m
   Questions:
      Finiteness: how do we know that Euclid’s algorithm actually comes to a
      stop?
      Definiteness: nonambiguity
      Effectiveness: effectively computable.
                                                                         9
Second Try for gcd(m, n)
Consecutive Integer Algorithm
  Step1: Assign the value of min{m, n} to t.

   Step2: Divide m by t. If the remainder of this division is 0, go to
   Step3;otherwise, go to Step 4.

   Step3: Divide n by t. If the remainder of this division is 0, return the
   value of t as the answer and stop; otherwise, proceed to Step4.

   Step4: Decrease the value of t by 1. Go to Step2.
Questions
   Finiteness
   Definiteness
   Effectiveness
   Which algorithm is faster, the Euclid’s or this one?
                                                                         10
Third try for gcd(m, n)
 Middle-school procedure
    Step1: Find the prime factors of m.

    Step2: Find the prime factors of n.

    Step3: Identify all the common factors in the two prime expansions
    found in Step1 and Step2. (If p is a common factor occurring Pm
    and Pn times in m and n, respectively, it should be repeated in
    min{Pm, Pn} times.)

    Step4: Compute the product of all the common factors and return
    it as the gcd of the numbers given.
 Question
    Is this a legitimate algorithm?



                                                                 11
What can we learn from the previous 3
examples?
 Each step of an algorithm must be unambiguous.
 The same algorithm can be represented in several
 different ways. (different pseudocodes)
 There might exists more than one algorithm for a
 certain problem.
 Algorithms for the same problem can be based on
 very different ideas and can solve the problem with
 dramatically different speeds.




                                                   12
Fundamentals of Algorithmic Problem Solving
Understanding the problem
  Asking questions, do a few examples by hand, think about special
  cases, etc.
Deciding on
  Exact vs. approximate problem solving
  Appropriate data structure
Design an algorithm
Proving correctness
Analyzing an algorithm
  Time efficiency : how fast the algorithm runs
  Space efficiency: how much extra memory the algorithm needs.
  Simplicity and generality
Coding an algorithm                                             13
Algorithm design strategies
Brute force             Greedy approach

Divide and conquer      Dynamic programming

Decrease and conquer    Backtracking and Branch and
                        bound
Transform and conquer
                        Space and time tradeoffs


                                                   14
Important Problem Types
Sorting
Searching
String processing
Graph problems




                          15
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. I.e., sort student records by names.
                                                   16
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.
                                                                17
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]

                                                        18
Searching
 Find a given value, called a search key, in a
 given set.
 Examples of searching algorithms
   Sequential searching
   Binary searching…




                                             19
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.


                                      20
Graph Problems
 Informal definition
   A graph is a collection of points called vertices,
   some of which are connected by line segments
   called edges.
 Modeling real-life problems
   Modeling WWW
   communication networks
   Project scheduling …
 Examples of graph algorithms
   Graph traversal algorithms
   Shortest-path algorithms
   Topological sorting                                  21
Fundamental Data Structures
 Linear data structures
 Stacks, queues, and heaps
 Graphs
 Trees




                             22
Linear Data Structures
Arrays                                   Arrays
   A sequence of n items of the same        fixed length (need preliminary
   data type that are stored                reservation of memory)
   contiguously in computer memory
   and made accessible by specifying        contiguous memory locations
   a value of the array’s index.            direct access
Linked List                                 Insert/delete
   A sequence of zero or more nodes      Linked Lists
   each containing two kinds of
   information: some data and one or        dynamic length
   more links called pointers to other      arbitrary memory locations
   nodes of the linked list.                access by following links
   Singly linked list (next pointer)        Insert/delete
   Doubly linked list (next + previous
   pointers)

                                                                         23
Stacks, Queues, and Heaps (1)
Stacks
  A stack of plates
     insertion/deletion can be done only at the top.
     LIFO
  Two operations (push and pop)
Queues
  A queue of customers waiting for services
     Insertion/enqueue from the rear and deletion/dequeue from
     the front.
     FIFO
  Two operations (enqueue and dequeue)
                                                            24
Stacks, Queues, and Heaps (2)
Priority queues (implemented using heaps)
  A data structure for maintaining a set of elements,
each associated with a key/priority, with the
following operations
    Finding the element with the highest priority
    Deleting the element with the highest priority
    Inserting a new element
  Scheduling jobs on a shared computer.




                                                        25
Graphs
 Formal definition
   A graph G = <V, E> is defined by a pair of two
   sets: a finite set V of items called vertices and a
   set E of vertex pairs called edges.
 Undirected and directed graphs (digraph).
 What’s the maximum number of edges in an
 undirected graph with |V| vertices?
 Complete, dense, and sparse graph
   A graph with every pair of its vertices connected
   by an edge is called complete. K|V|

                                                     26
Graph Representation
 Adjacency matrix
    n x n boolean matrix if |V| is n.
    The element on the ith row and jth column is 1 if there’s an
    edge from ith vertex to the jth vertex; otherwise 0.
    The adjacency matrix of an undirected graph is symmetric.
 Adjacency linked lists
    A collection of linked lists, one for each vertex, that contain
    all the vertices adjacent to the list’s vertex.
 Which data structure would you use if the graph is a
 100-node star shape?


                                                                27
Weighted Graphs
 Weighted graphs
  Graphs or digraphs with numbers assigned
  to the edges.




                                       28
Graph Properties -- Paths and Connectivity
Paths
  A path from vertex u to v of a graph G is defined as a
  sequence of adjacent (connected by an edge) vertices
  that starts with u and ends with v.
  Simple paths: All edges of a path are distinct.
  Path lengths: the number of edges, or the number of
  vertices – 1.
Connected graphs
  A graph is said to be connected if for every pair of its
  vertices u and v there is a path from u to v.
Connected component
  The maximum connected subgraph of a given graph.
                                                        29
Graph Properties -- Acyclicity
  Cycle
     A simple path of a positive length that
     starts and ends a the same vertex.
  Acyclic graph
     A graph without cycles
     DAG (Directed Acyclic Graph)




                                               30
Trees (I)
 Trees
   A tree (or free tree) is a connected acyclic graph.
   Forests: a graph that has no cycles but is not
   necessarily connected.
 Properties of trees
   |E| = |V| - 1
   For every two vertices in a tree there always
   exists exactly one simple path from one of these
   vertices to the other. Why?
      Rooted trees: The above property makes it possible to
      select an arbitrary vertex in a free tree and consider it as
      the root of the so-called rooted tree.
      Levels of rooted tree.                                  31
Trees (II)
ancestors
   For any vertex v in a tree T, all the vertices on the simple path from the
   root to that vertex are called ancestors.
descendants
   All the vertices for which a vertex v is an ancestor are said to be
   descendants of v.
parent, child and siblings
   If (u, v) is the last edge of the simple path from the root to vertex v
   (and u ‡ v), u is said to be the parent of v and v is called a child of u.
   Vertices that have the same parent are called siblings.
Leaves
   A vertex without children is called a leaf.
Subtree
   A vertex v with all its descendants is called the subtree of T rooted 32 v.
                                                                         at
Trees (III)
Depth of a vertex
  The length of the simple path from the root to
  the vertex.
Height of a tree
  The length of the longest simple path from the
  root to a leaf.




                                              33
Ordered Trees
Ordered trees
   An ordered tree is a rooted tree in which all the children of each
   vertex are ordered.
Binary trees
   A binary tree is an ordered tree in which every vertex has no
   more than two children and each children is designated s either a
   left child or a right child of its parent.
Binary search trees
   Each vertex is assigned a number.
   A number assigned to each parental vertex is larger than all the
   numbers in its left subtree and smaller than all the numbers in its
   right subtree.
⎣log2n⎦ ≤ h ≤ n – 1, where h is the height of a binary tree.
                                                                   34

More Related Content

What's hot (20)

Lecture optimal binary search tree
Lecture optimal binary search tree Lecture optimal binary search tree
Lecture optimal binary search tree
 
Unit 1 chapter 1 Design and Analysis of Algorithms
Unit 1   chapter 1 Design and Analysis of AlgorithmsUnit 1   chapter 1 Design and Analysis of Algorithms
Unit 1 chapter 1 Design and Analysis of Algorithms
 
Quick sort
Quick sortQuick sort
Quick sort
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Hamiltonian path
Hamiltonian pathHamiltonian path
Hamiltonian path
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
 
Dinive conquer algorithm
Dinive conquer algorithmDinive conquer algorithm
Dinive conquer algorithm
 
A* Search Algorithm
A* Search AlgorithmA* Search Algorithm
A* Search Algorithm
 
Algorithm Design
Algorithm DesignAlgorithm Design
Algorithm Design
 
Greedy Algorithms
Greedy AlgorithmsGreedy Algorithms
Greedy Algorithms
 
Algorithm chapter 10
Algorithm chapter 10Algorithm chapter 10
Algorithm chapter 10
 
Bellman ford Algorithm
Bellman ford AlgorithmBellman ford Algorithm
Bellman ford Algorithm
 
Time complexity
Time complexityTime complexity
Time complexity
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to Algorithms
 
Topological Sort
Topological SortTopological Sort
Topological Sort
 
sum of subset problem using Backtracking
sum of subset problem using Backtrackingsum of subset problem using Backtracking
sum of subset problem using Backtracking
 
Time complexity.ppt
Time complexity.pptTime complexity.ppt
Time complexity.ppt
 
Greedy Algorihm
Greedy AlgorihmGreedy Algorihm
Greedy Algorihm
 
Topological Sorting
Topological SortingTopological Sorting
Topological Sorting
 

Viewers also liked

Algorithm chapter 6
Algorithm chapter 6Algorithm chapter 6
Algorithm chapter 6chidabdu
 
Data structures and algorithms - sorting algorithms
Data structures and algorithms - sorting algorithmsData structures and algorithms - sorting algorithms
Data structures and algorithms - sorting algorithmsAbimbola Idowu
 
Unit 3 basic processing unit
Unit 3   basic processing unitUnit 3   basic processing unit
Unit 3 basic processing unitchidabdu
 
11 instruction sets addressing modes
11  instruction sets addressing modes 11  instruction sets addressing modes
11 instruction sets addressing modes Sher Shah Merkhel
 

Viewers also liked (6)

Algorithm chapter 6
Algorithm chapter 6Algorithm chapter 6
Algorithm chapter 6
 
Sorting
SortingSorting
Sorting
 
Data structures and algorithms - sorting algorithms
Data structures and algorithms - sorting algorithmsData structures and algorithms - sorting algorithms
Data structures and algorithms - sorting algorithms
 
Unit 3 basic processing unit
Unit 3   basic processing unitUnit 3   basic processing unit
Unit 3 basic processing unit
 
11 instruction sets addressing modes
11  instruction sets addressing modes 11  instruction sets addressing modes
11 instruction sets addressing modes
 
Merge sort and quick sort
Merge sort and quick sortMerge sort and quick sort
Merge sort and quick sort
 

Similar to Algorithm chapter 1

a581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptxa581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptxchristinamary2620
 
Kk20503 1 introduction
Kk20503 1 introductionKk20503 1 introduction
Kk20503 1 introductionLow Ying Hao
 
CP4151 ADSA unit1 Advanced Data Structures and Algorithms
CP4151 ADSA unit1 Advanced Data Structures and AlgorithmsCP4151 ADSA unit1 Advanced Data Structures and Algorithms
CP4151 ADSA unit1 Advanced Data Structures and AlgorithmsSheba41
 
VCE Unit 01 (2).pptx
VCE Unit 01 (2).pptxVCE Unit 01 (2).pptx
VCE Unit 01 (2).pptxskilljiolms
 
Introducción al Análisis y diseño de algoritmos
Introducción al Análisis y diseño de algoritmosIntroducción al Análisis y diseño de algoritmos
Introducción al Análisis y diseño de algoritmosluzenith_g
 
CP4151 Advanced data structures and algorithms
CP4151 Advanced data structures and algorithmsCP4151 Advanced data structures and algorithms
CP4151 Advanced data structures and algorithmsSheba41
 
Design and Analysis of Algorithm Brute Force 1.ppt
Design and Analysis of Algorithm Brute Force 1.pptDesign and Analysis of Algorithm Brute Force 1.ppt
Design and Analysis of Algorithm Brute Force 1.pptmoiza354
 
Analysis of Algorithm full version 2024.pptx
Analysis of Algorithm  full version  2024.pptxAnalysis of Algorithm  full version  2024.pptx
Analysis of Algorithm full version 2024.pptxrajesshs31r
 
Design Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptxDesign Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptxrajesshs31r
 
Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0BG Java EE Course
 
19IS402_LP1_LM_22-23.pdf
19IS402_LP1_LM_22-23.pdf19IS402_LP1_LM_22-23.pdf
19IS402_LP1_LM_22-23.pdfGOWTHAMR721887
 

Similar to Algorithm chapter 1 (20)

a581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptxa581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
 
Kk20503 1 introduction
Kk20503 1 introductionKk20503 1 introduction
Kk20503 1 introduction
 
Design & Analysis Of Algorithm
Design & Analysis Of AlgorithmDesign & Analysis Of Algorithm
Design & Analysis Of Algorithm
 
Chapter one
Chapter oneChapter one
Chapter one
 
Alg1
Alg1Alg1
Alg1
 
ALGO.ppt
ALGO.pptALGO.ppt
ALGO.ppt
 
CP4151 ADSA unit1 Advanced Data Structures and Algorithms
CP4151 ADSA unit1 Advanced Data Structures and AlgorithmsCP4151 ADSA unit1 Advanced Data Structures and Algorithms
CP4151 ADSA unit1 Advanced Data Structures and Algorithms
 
VCE Unit 01 (2).pptx
VCE Unit 01 (2).pptxVCE Unit 01 (2).pptx
VCE Unit 01 (2).pptx
 
Introducción al Análisis y diseño de algoritmos
Introducción al Análisis y diseño de algoritmosIntroducción al Análisis y diseño de algoritmos
Introducción al Análisis y diseño de algoritmos
 
Daa chapter 1
Daa chapter 1Daa chapter 1
Daa chapter 1
 
CP4151 Advanced data structures and algorithms
CP4151 Advanced data structures and algorithmsCP4151 Advanced data structures and algorithms
CP4151 Advanced data structures and algorithms
 
Design and Analysis of Algorithm Brute Force 1.ppt
Design and Analysis of Algorithm Brute Force 1.pptDesign and Analysis of Algorithm Brute Force 1.ppt
Design and Analysis of Algorithm Brute Force 1.ppt
 
chapter 1
chapter 1chapter 1
chapter 1
 
Analysis of Algorithm full version 2024.pptx
Analysis of Algorithm  full version  2024.pptxAnalysis of Algorithm  full version  2024.pptx
Analysis of Algorithm full version 2024.pptx
 
Design Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptxDesign Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptx
 
Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0
 
l01-intro (3).ppt
l01-intro (3).pptl01-intro (3).ppt
l01-intro (3).ppt
 
Analysis.ppt
Analysis.pptAnalysis.ppt
Analysis.ppt
 
01-algo.ppt
01-algo.ppt01-algo.ppt
01-algo.ppt
 
19IS402_LP1_LM_22-23.pdf
19IS402_LP1_LM_22-23.pdf19IS402_LP1_LM_22-23.pdf
19IS402_LP1_LM_22-23.pdf
 

More from chidabdu

Sienna 12 huffman
Sienna 12 huffmanSienna 12 huffman
Sienna 12 huffmanchidabdu
 
Sienna 11 graphs
Sienna 11 graphsSienna 11 graphs
Sienna 11 graphschidabdu
 
Sienna 10 dynamic
Sienna 10 dynamicSienna 10 dynamic
Sienna 10 dynamicchidabdu
 
Sienna 9 hashing
Sienna 9 hashingSienna 9 hashing
Sienna 9 hashingchidabdu
 
Sienna 8 countingsorts
Sienna 8 countingsortsSienna 8 countingsorts
Sienna 8 countingsortschidabdu
 
Sienna 7 heaps
Sienna 7 heapsSienna 7 heaps
Sienna 7 heapschidabdu
 
Sienna 6 bst
Sienna 6 bstSienna 6 bst
Sienna 6 bstchidabdu
 
Sienna 5 decreaseandconquer
Sienna 5 decreaseandconquerSienna 5 decreaseandconquer
Sienna 5 decreaseandconquerchidabdu
 
Sienna 4 divideandconquer
Sienna 4 divideandconquerSienna 4 divideandconquer
Sienna 4 divideandconquerchidabdu
 
Sienna 3 bruteforce
Sienna 3 bruteforceSienna 3 bruteforce
Sienna 3 bruteforcechidabdu
 
Sienna 2 analysis
Sienna 2 analysisSienna 2 analysis
Sienna 2 analysischidabdu
 
Sienna 1 intro
Sienna 1 introSienna 1 intro
Sienna 1 introchidabdu
 
Sienna 13 limitations
Sienna 13 limitationsSienna 13 limitations
Sienna 13 limitationschidabdu
 
Unit 5 I/O organization
Unit 5   I/O organizationUnit 5   I/O organization
Unit 5 I/O organizationchidabdu
 
Algorithm chapter 11
Algorithm chapter 11Algorithm chapter 11
Algorithm chapter 11chidabdu
 
Algorithm chapter 9
Algorithm chapter 9Algorithm chapter 9
Algorithm chapter 9chidabdu
 
Algorithm chapter 8
Algorithm chapter 8Algorithm chapter 8
Algorithm chapter 8chidabdu
 
Algorithm chapter 7
Algorithm chapter 7Algorithm chapter 7
Algorithm chapter 7chidabdu
 
Algorithm chapter 5
Algorithm chapter 5Algorithm chapter 5
Algorithm chapter 5chidabdu
 
Algorithm chapter 2
Algorithm chapter 2Algorithm chapter 2
Algorithm chapter 2chidabdu
 

More from chidabdu (20)

Sienna 12 huffman
Sienna 12 huffmanSienna 12 huffman
Sienna 12 huffman
 
Sienna 11 graphs
Sienna 11 graphsSienna 11 graphs
Sienna 11 graphs
 
Sienna 10 dynamic
Sienna 10 dynamicSienna 10 dynamic
Sienna 10 dynamic
 
Sienna 9 hashing
Sienna 9 hashingSienna 9 hashing
Sienna 9 hashing
 
Sienna 8 countingsorts
Sienna 8 countingsortsSienna 8 countingsorts
Sienna 8 countingsorts
 
Sienna 7 heaps
Sienna 7 heapsSienna 7 heaps
Sienna 7 heaps
 
Sienna 6 bst
Sienna 6 bstSienna 6 bst
Sienna 6 bst
 
Sienna 5 decreaseandconquer
Sienna 5 decreaseandconquerSienna 5 decreaseandconquer
Sienna 5 decreaseandconquer
 
Sienna 4 divideandconquer
Sienna 4 divideandconquerSienna 4 divideandconquer
Sienna 4 divideandconquer
 
Sienna 3 bruteforce
Sienna 3 bruteforceSienna 3 bruteforce
Sienna 3 bruteforce
 
Sienna 2 analysis
Sienna 2 analysisSienna 2 analysis
Sienna 2 analysis
 
Sienna 1 intro
Sienna 1 introSienna 1 intro
Sienna 1 intro
 
Sienna 13 limitations
Sienna 13 limitationsSienna 13 limitations
Sienna 13 limitations
 
Unit 5 I/O organization
Unit 5   I/O organizationUnit 5   I/O organization
Unit 5 I/O organization
 
Algorithm chapter 11
Algorithm chapter 11Algorithm chapter 11
Algorithm chapter 11
 
Algorithm chapter 9
Algorithm chapter 9Algorithm chapter 9
Algorithm chapter 9
 
Algorithm chapter 8
Algorithm chapter 8Algorithm chapter 8
Algorithm chapter 8
 
Algorithm chapter 7
Algorithm chapter 7Algorithm chapter 7
Algorithm chapter 7
 
Algorithm chapter 5
Algorithm chapter 5Algorithm chapter 5
Algorithm chapter 5
 
Algorithm chapter 2
Algorithm chapter 2Algorithm chapter 2
Algorithm chapter 2
 

Recently uploaded

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 

Recently uploaded (20)

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 

Algorithm chapter 1

  • 1. CS303— Computer Algorithms Instructor: Dr. Yanxia Jia (yjia@ashland.edu) Course web page http://www.ashland.edu/~yjia/Courses/CS303/S05_CS303_Syl.html
  • 2. Why Study Algorithms? Al Khawarizmi “A great Iranian mathematician, geographer and astronomer. He introduced the zero, negative numbers, algebra, and the decimal system to the West. He also invented mathematical programming using a set of instructions to perform complex calculations. The term algorithm is named after a variation of his name, Algorithmi. “ What is it? Briefly speaking, algorithms are procedure solution to problems. Algorithms are not answers but rather precisely defined procedures for getting answers. (Example of sorting 3 numbers.) Cornerstone of computer science. Programs will not exist without algorithms. Algorithm design techniques, or problem-solving strategies, are useful in fields beyond computer science. 2
  • 3. Algorithms An algorithm is a sequence of unambiguous instructions for solving a computational problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. problem algorithm input “computer” output 3
  • 4. 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) 4
  • 5. Properties of Algorithms What distinguish an algorithm from a recipe, process, method, technique, procedure, routine…? Finiteness terminates after a finite number of steps Definiteness Each step must be rigorously and unambiguously specified. -e.g., ”stir until lumpy” Input Valid inputs must be clearly specified. Output The data that result upon completion of the algorithm must be specified. Effectiveness Steps must be sufficiently simple and basic. -e.g., check if 2 is the largest integer n for which there is a solution to the equation xn + yn = zn in positive integers x, y, and z 5
  • 6. Examples Is the following a legitimate algorithm? i 1 While (i <= 10) do a i+1 Print the value of a End of loop Stop 6
  • 7. Examples of Algorithms – Computing the Greatest Common Divisor of Two Integers gcd(m, n): the largest integer that divides both m and n. First try -- Euclid’s algorithm: gcd(m, n) = gcd(n, m mod n) Step1: If n = 0, return the value of m as the answer and stop; otherwise, proceed to Step 2. Step2: 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. 7
  • 8. Methods of Specifying an Algorithm Natural language Ambiguous “Mike ate his sandwich on a bed of lettuce.” Pseudocode A mixture of a natural language and programming language-like structures Precise and succinct. Pseudocode in this course omits declarations of variables use indentation to show the scope of such statements as for, if, and while. use for assignment 8
  • 9. Pseudocode of Euclid’s Algorithm Algorithm Euclid(m, n) //Computes gcd(m, n) by Euclid’s algorithm //Input: Two nonnegative, not-both-zero integers m and n //Output: Greatest common divisor of m and n while n ‡ 0 do r m mod n m n n r return m Questions: Finiteness: how do we know that Euclid’s algorithm actually comes to a stop? Definiteness: nonambiguity Effectiveness: effectively computable. 9
  • 10. Second Try for gcd(m, n) Consecutive Integer Algorithm Step1: Assign the value of min{m, n} to t. Step2: Divide m by t. If the remainder of this division is 0, go to Step3;otherwise, go to Step 4. Step3: Divide n by t. If the remainder of this division is 0, return the value of t as the answer and stop; otherwise, proceed to Step4. Step4: Decrease the value of t by 1. Go to Step2. Questions Finiteness Definiteness Effectiveness Which algorithm is faster, the Euclid’s or this one? 10
  • 11. Third try for gcd(m, n) Middle-school procedure Step1: Find the prime factors of m. Step2: Find the prime factors of n. Step3: Identify all the common factors in the two prime expansions found in Step1 and Step2. (If p is a common factor occurring Pm and Pn times in m and n, respectively, it should be repeated in min{Pm, Pn} times.) Step4: Compute the product of all the common factors and return it as the gcd of the numbers given. Question Is this a legitimate algorithm? 11
  • 12. What can we learn from the previous 3 examples? Each step of an algorithm must be unambiguous. The same algorithm can be represented in several different ways. (different pseudocodes) There might exists more than one algorithm for a certain problem. Algorithms for the same problem can be based on very different ideas and can solve the problem with dramatically different speeds. 12
  • 13. Fundamentals of Algorithmic Problem Solving Understanding the problem Asking questions, do a few examples by hand, think about special cases, etc. Deciding on Exact vs. approximate problem solving Appropriate data structure Design an algorithm Proving correctness Analyzing an algorithm Time efficiency : how fast the algorithm runs Space efficiency: how much extra memory the algorithm needs. Simplicity and generality Coding an algorithm 13
  • 14. Algorithm design strategies Brute force Greedy approach Divide and conquer Dynamic programming Decrease and conquer Backtracking and Branch and bound Transform and conquer Space and time tradeoffs 14
  • 15. Important Problem Types Sorting Searching String processing Graph problems 15
  • 16. 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. I.e., sort student records by names. 16
  • 17. 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. 17
  • 18. 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] 18
  • 19. Searching Find a given value, called a search key, in a given set. Examples of searching algorithms Sequential searching Binary searching… 19
  • 20. 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. 20
  • 21. Graph Problems Informal definition A graph is a collection of points called vertices, some of which are connected by line segments called edges. Modeling real-life problems Modeling WWW communication networks Project scheduling … Examples of graph algorithms Graph traversal algorithms Shortest-path algorithms Topological sorting 21
  • 22. Fundamental Data Structures Linear data structures Stacks, queues, and heaps Graphs Trees 22
  • 23. Linear Data Structures Arrays Arrays A sequence of n items of the same fixed length (need preliminary data type that are stored reservation of memory) contiguously in computer memory and made accessible by specifying contiguous memory locations a value of the array’s index. direct access Linked List Insert/delete A sequence of zero or more nodes Linked Lists each containing two kinds of information: some data and one or dynamic length more links called pointers to other arbitrary memory locations nodes of the linked list. access by following links Singly linked list (next pointer) Insert/delete Doubly linked list (next + previous pointers) 23
  • 24. Stacks, Queues, and Heaps (1) Stacks A stack of plates insertion/deletion can be done only at the top. LIFO Two operations (push and pop) Queues A queue of customers waiting for services Insertion/enqueue from the rear and deletion/dequeue from the front. FIFO Two operations (enqueue and dequeue) 24
  • 25. Stacks, Queues, and Heaps (2) Priority queues (implemented using heaps) A data structure for maintaining a set of elements, each associated with a key/priority, with the following operations Finding the element with the highest priority Deleting the element with the highest priority Inserting a new element Scheduling jobs on a shared computer. 25
  • 26. Graphs Formal definition A graph G = <V, E> is defined by a pair of two sets: a finite set V of items called vertices and a set E of vertex pairs called edges. Undirected and directed graphs (digraph). What’s the maximum number of edges in an undirected graph with |V| vertices? Complete, dense, and sparse graph A graph with every pair of its vertices connected by an edge is called complete. K|V| 26
  • 27. Graph Representation Adjacency matrix n x n boolean matrix if |V| is n. The element on the ith row and jth column is 1 if there’s an edge from ith vertex to the jth vertex; otherwise 0. The adjacency matrix of an undirected graph is symmetric. Adjacency linked lists A collection of linked lists, one for each vertex, that contain all the vertices adjacent to the list’s vertex. Which data structure would you use if the graph is a 100-node star shape? 27
  • 28. Weighted Graphs Weighted graphs Graphs or digraphs with numbers assigned to the edges. 28
  • 29. Graph Properties -- Paths and Connectivity Paths A path from vertex u to v of a graph G is defined as a sequence of adjacent (connected by an edge) vertices that starts with u and ends with v. Simple paths: All edges of a path are distinct. Path lengths: the number of edges, or the number of vertices – 1. Connected graphs A graph is said to be connected if for every pair of its vertices u and v there is a path from u to v. Connected component The maximum connected subgraph of a given graph. 29
  • 30. Graph Properties -- Acyclicity Cycle A simple path of a positive length that starts and ends a the same vertex. Acyclic graph A graph without cycles DAG (Directed Acyclic Graph) 30
  • 31. Trees (I) Trees A tree (or free tree) is a connected acyclic graph. Forests: a graph that has no cycles but is not necessarily connected. Properties of trees |E| = |V| - 1 For every two vertices in a tree there always exists exactly one simple path from one of these vertices to the other. Why? Rooted trees: The above property makes it possible to select an arbitrary vertex in a free tree and consider it as the root of the so-called rooted tree. Levels of rooted tree. 31
  • 32. Trees (II) ancestors For any vertex v in a tree T, all the vertices on the simple path from the root to that vertex are called ancestors. descendants All the vertices for which a vertex v is an ancestor are said to be descendants of v. parent, child and siblings If (u, v) is the last edge of the simple path from the root to vertex v (and u ‡ v), u is said to be the parent of v and v is called a child of u. Vertices that have the same parent are called siblings. Leaves A vertex without children is called a leaf. Subtree A vertex v with all its descendants is called the subtree of T rooted 32 v. at
  • 33. Trees (III) Depth of a vertex The length of the simple path from the root to the vertex. Height of a tree The length of the longest simple path from the root to a leaf. 33
  • 34. Ordered Trees Ordered trees An ordered tree is a rooted tree in which all the children of each vertex are ordered. Binary trees A binary tree is an ordered tree in which every vertex has no more than two children and each children is designated s either a left child or a right child of its parent. Binary search trees Each vertex is assigned a number. A number assigned to each parental vertex is larger than all the numbers in its left subtree and smaller than all the numbers in its right subtree. ⎣log2n⎦ ≤ h ≤ n – 1, where h is the height of a binary tree. 34