100%(2)100% found this document useful (2 votes)

48 views21 pages© Attribution Non-Commercial (BY-NC)

PDF, TXT or read online from Scribd

Attribution Non-Commercial (BY-NC)

100%(2)100% found this document useful (2 votes)

48 views21 pagesAttribution Non-Commercial (BY-NC)

You are on page 1of 21

Getting Started

Insertion Sort

Insertion-Sort(A)

sort an array A[1..n] containing a sequence of

length n (length[A])

input array A contains the sorted output sequence when

finished

input numbers are

sorted in place

the numbers are arranged

within the array A, with

at most a constant

number of them stored

outside the array at any

time

1

(i.e., n)

Liberal use of English

employs whatever expressive method is most clear

and concise to specify a given algorithm

algorithms are expressed to humans, not to computers

Omission of error handling and other such

things needed in real programs

not concerned with issues of software engineering

in order to convey the essence of the algorithm

more concisely

2

Loop Invariants

Technique for proofs of the correctness of

algorithms

Conditions and relationships that are

satisfied by the variables and data

structures at the end of each iteration of

the loop

Established by induction on the number of

passes through the loop

similar to mathematical induction

to prove a property holds, prove a base case and an

inductive step

Properties of Loop

Invariants

Initialization

it is true prior to the first iteration of the loop

Maintenance

if it is true before an iteration of the loop, it

remains true before the next iteration

Termination

when the loop terminates, the invariant gives us a

useful property that helps show that the algorithm is

correct

3

Loop Invariants of

Insertion Sort

Initialization

show that the loop invariants holds before the first

loop iteration

j = 2 ⇒ A[1 .. j - 1] = A[1] is in sorted order

Maintenance

show that each iteration maintains the loop invariant

at the start of each iteration of the ”outer” for loop, the

subarray A[1 .. j - 1] consists of the elements originally in

A[1 .. j - 1] but in sorted order

Termination

examine what happens when the loop terminates

j = n + 1 ⇒ A[1 .. j - 1] = A[1 .. n]

7

Analyzing Algorithms

To predict the resources that the algorithm

requires

resource examples

memory, communication bandwidth, computer hardware,

computational time (measured most often)

Computational model

random-access machine (RAM) model

instructions are executed one after another

each instruction takes a constant amount of time

no concurrent operations

data types are integer and floating point

the size of each word of data does not grow arbitrarily

no caches or virtual memory

no memory-hierarchy effects

8

4

Primitive Instructions

Basic computations performed by an

algorithm

exact definition is not important

assumed to take a constant amount of time in the

RAM model

Examples

arithmetic: add, subtract, multiply, divide,

remainder, floor, ceiling), shift left/shift right

data movement: load, store, copy

control: conditional/unconditional branch,

subroutine call and return

9

Running Time

The number of primitive operations (steps)

executed

steps are machine-independent

each line of pseudo code requires a constant

amount of time.

one line may take a different amount of time than another,

but each execution of line i takes the same amount of

time ci

10

5

Running Time

Depends on

input size

the time generally grows with the size of the input

e.g., 6 elements vs. 6000 elements

input itself

may take different amounts of time on two inputs of the

same size

e.g., sorted vs. reversely sorted

11

Worst case

maximum time on any input of size n

usually used

Average case

average time over all inputs of size n

occasionally used

Best case

minimum time on any input of size n

hardly used

12

6

execute tj times

for iteration j

• tj : the number of times the while loop test in line 5 is executed for the value of j

13

Array already sorted

always A[i] ≤ key upon the first time the while loop

test is run (when i = j - 1)

all tj are 1

n n

∑ t = ∑1 = n − 1

j =2

j

j =2

n n

∑ t j − 1 = ∑1 − 1 = 0

j =2 j =2

14

7

Best Case Running Time

statement costs ci )

⇒ T(n) is a linear function of n

15

Array in reverse sorted order (i.e., decreasing

order)

always A[i] > key in while loop test

compared with j - 1 elements

one additional test after the j - 1 tests ⇒ tj = j

n n

n(n + 1)

∑t = ∑ j =

j =2

j

j =2 2

−1

n n

n(n − 1)

∑t j −1 = ∑ j −1 =

j =2 j =2 2

16

8

Worst Case Running Time

n

n( n + 1)

∑j=

2 2

−1

n

n( n − 1)

∑ ( j − 1) =

2 2

the statement costs ci )

⇒ T(n) is a quadratic function of n

17

Worst-Case Analysis

Worst-case running time is usually preferred

the longest running time for any input of size n

Reasons

the worst-case running time is an upper bound on

the running time for any input

for some algorithms, the worst case occurs fairly

often

e.g., the worst case of searching often occurs when

the item being searched for is not present

searches for absent items may be frequent

the average case is often roughly as bad as the

worst case

18

9

Order of Growth

Use abstraction to ease analysis and focus on

the important features

consider only the leading term of formula and

drop lower-order terms

e.g., an2 instead of an2 + bn + c

ignore the constant coefficient in the leading

term

e.g., n2 instead of an2

use Θ-notation as the running time

e.g., Θ(n2) ⇒ the worst-case running time T (n) grows

like n2, but it does not equal n2

19

Algorithm Efficiency

One algorithm is considered to be more

efficient than another if its worst case

running time has a smaller order of growth

the evaluation may be in error for small inputs

due to constant factors and lower order terms

the evaluation will hold for large enough inputs

e.g., Θ(n2) algorithm will run more quickly in the worst case

than a Θ(n3) algorithm

20

10

Skip section### Trending

- Collide: Book One in the Collide SeriesGail McHugh
- The House We Grew Up In: A NovelLisa Jewell
- Manifest Your DestinyWayne W. Dyer
- Panda Bear, Panda Bear, What Do You See?Bill Martin Jr.
- Queen of ShadowsSarah J. Maas
- The Three-Body ProblemCixin Liu
- The Long WalkStephen King
- Shoe Dog: A Memoir by the Creator of NikePhil Knight
- BossmanVi Keeland
- On the Banks of Plum CreekLaura Ingalls Wilder
- Unfu*k Yourself: Get out of your head and into your lifeGary John Bishop
- What the Most Successful People Do Before Breakfast: A Short Guide to Making Over Your Mornings--and LifeLaura Vanderkam
- The Wife Between Us: A NovelGreer Hendricks
- The OneJohn Marrs
- With the Fire on HighElizabeth Acevedo
- Trillion Dollar Coach: The Leadership Playbook of Silicon Valley's Bill CampbellEric Schmidt
- The Dry: A NovelJane Harper
- This Is How You Lose The Time WarAmal El-Mohtar
- Inside Out: A MemoirDemi Moore
- Oona Out of Order: A NovelMargarita Montimore
- The Last House GuestMegan Miranda
- Legendary: A Caraval NovelStephanie Garber
- TomboyAvery Flynn
- The New Jim Crow: Mass Incarceration in the Age of ColorblindnessMichelle Alexander