100% found this document useful (1 vote)
495 views

The Design and Analysis of Algorithms: by Anany Levitin

This document provides an introduction to algorithms and their design. It defines an algorithm as a sequence of unambiguous instructions to solve a problem within a finite time period. The key steps in designing an algorithm are to understand the problem, decide on a computational approach, design and prove the algorithm is correct, analyze its efficiency, and code it. Important problem types include sorting, searching, string processing, graphs, and numerical problems. Fundamental data structures include arrays, linked lists, stacks, queues, graphs, trees, sets, bags and dictionaries.

Uploaded by

Celestino Barros
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
495 views

The Design and Analysis of Algorithms: by Anany Levitin

This document provides an introduction to algorithms and their design. It defines an algorithm as a sequence of unambiguous instructions to solve a problem within a finite time period. The key steps in designing an algorithm are to understand the problem, decide on a computational approach, design and prove the algorithm is correct, analyze its efficiency, and code it. Important problem types include sorting, searching, string processing, graphs, and numerical problems. Fundamental data structures include arrays, linked lists, stacks, queues, graphs, trees, sets, bags and dictionaries.

Uploaded by

Celestino Barros
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

The Design and Analysis of Algorithms

by Anany Levitin
Lecture notes prepared by Lydia Sinapova, Simpson College

CHAPTER 1: INTRODUCTION

What is an Algorithm
Steps in Designing and Implementing an Algorithm Important Problem Types Fundamental Data Structures

ALGORITHM
A

sequence of unambiguous instructions for solving a problem, i.e. for obtaining the required output for any legitimate input in
a finite amount of time
3

Important points

Non-ambiguity
Range of inputs

The same algorithm can be represented in different ways


Several algorithms for solving the same problem
4

gcd(m,n)
while n 0 do r m mod n mn n r return m 1. t min (m ,n) 2. if m % t = 0 goto 3, else goto 4 3. if n % t = 0 return t, else goto 4 4. t t - 1 5. goto 2
5

Understand the problem


Decide on computational means Exact vs approximate solution Data structures Algorithm design technique

Design an algorithm

Prove correctness
Analyze the algorithm Code the algorithm
6

What does it mean to understand the problem?

What are the problem objects? What are the operations applied to the objects?

Deciding on computational means


How the objects would be represented? How the operations would be implemented?

Design an algorithm
Build a computational model of the solving process

Prove correctness
Correct output for every legitimate input in finite time Based on correct math formula By induction
8

Analyze the algorithm


Efficiency: time and space Simplicity Generality: range of inputs, special cases Optimality: no other algorithm can do better

Coding

How the objects and operations in the algorithm are represented in the chosen programming language?
9

Important problem types


Sorting Searching String processing Graph problems Combinatorial problems Geometric problems Numerical problems

10

Fundamental data structures


Linear data structures Array Linked list Stack Queue
Operations: search, delete, insert Implementation: static, dynamic
11

Fundamental data structures


Non-linear data structures Graphs Trees : connected graph without cycles
Rooted

trees Ordered trees Binary trees

Graph representation: adjacency lists, adjacency matrix Tree representation: as graphs; binary nodes
12

Fundamental data structures


Sets, Bags, Dictionaries

Set: unordered collection of distinct elements


Operations: membership, union, intersection Representation: bit string; linear structure

Bag: unordered collection, elements may be repeated

Dictionary: a bag with operations search, add, delete


13

Conclusion
Algorithm
By

classification

types of problems By design technique


Design
a

techniques

general approach to solving problems

14

You might also like