1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir...

23
1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics

Transcript of 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir...

Page 1: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

1

CE 221Data Structures & Algorithms

Chapter 1 Introduction

Text: Read Weiss, §1.1 – 1.3

Izmir University of Economics

Page 2: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

2

Course Policy

• Syllabus• Grading• Labs always in C++ (and/or C)

programming language• Each assignment starts and ends in the same

Lab session. Late assignments will not be accepted.

• Study hard!

Izmir University of Economics

Page 3: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

3

Introduction

• See that how a program performs for reasonably large input is just as important as its performance on moderate amounts of input

• Summarize basic mathematical background needed

• Review recursion

Izmir University of Economics

Page 4: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

4

Motivating Examples: Selection• Selection problem: you have a group of N numbers and

would like to determine the kth largest.• I: read them into an array. Sort them in decreasing order.

Return the kth element.• II: read the first k elements into the array. Sort them in

decreasing order. Next read the remaining elements one by one. If the new element read is smaller than the last, ignore it otherwise place in the correct spot in the array bumping one element out of the array.

• A simulation with a random file of 10 million elements and k = 5,000,000 shows that each requires several days of computer processing.

Izmir University of Economics

Page 5: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

5

Motivating Examples: Word Puzzles• Solving a popular word puzzle: Input consists of a two

dimensional array of letters and a list of words. The objective is to find the words lying horizontally, vertically or diagonally in either direction.

• I: for each word in the word list, check (row, column, orientation)

• II: for each ordered quadruple (row, column, orientation, number of characters), test whether the word is in the word list.

• {this, two, fat, that}

Izmir University of Economics

Page 6: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

6

Math Review - Exponents

• XAXB = XA+B

• XA/XB = XA-B

• (XA)B = XAB

• XN+XN = 2XN !=X2N

Izmir University of Economics

Page 7: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

7

Math Review – Logarithms I• In computer science, all logarithms are to the base 2 unless

specified otherwise.• Definition 1.1. XA = B iff logXB=A• Theorem 1.1. logAB = logCB/logCA where A, B, C > 0, A != 1

• Proof: Let X=logCB, Y=logCA, Z=logABCX=B, CY=A, AZ=B by Definition 1.1.B=CX=(CY)Z.Therefore, X=YZ• Theorem 1.2. log AB = logA + logB where A, B > 0

• Proof: X=logA, Y=logB, and Z=logAB,2X=A, 2Y=B, and 2Z=AB, 2X2Y=AB=2Z.Therefore, X+Y=Z

Izmir University of Economics

Page 8: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

Math Review – Logarithms II

• log A/B = logA – logB

• log(AB)=BlogA

• logX < X for all X > 0

• log1 = 0, log2 = 1, log1024 = 10

8Izmir University of Economics

Page 9: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

9

Math Review – Series I• Geometric Series

• If 0 < A < 1, then and as N tends to , the sum approaches 1/(1-A)

• S=1+A+A2+A3+A4...• AS=A+A2+A3+A4+A5... • S-AS= 1 which implies S=1/(1-A)

11202

NN

i

i

1

1

0

1

A

AN

i

iAN

A

N

i

iA

1

1

0

Izmir University of Economics

Page 10: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

10

Math Review – Series II

• Arithmetic Series

2...2

1

2

1

2

112

...2

4

2

3

2

212

...2

4

2

3

2

2

2

1

?1

2/

32

32

432

SSS

S

S

iii

2/)1(1...1112

_______________________________1...21

...321

)(2

2

2

)1(

1

NNSNNNNS

NNN

N

S

S

MethodGaussNNNN

ii

2/)13(2/)1(3

11

13

11

13

113

:Example

kkkkk

k

i

k

ii

k

i

k

ii

k

ii

Izmir University of Economics

Page 11: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

11

Math Review – Series III

3/36/)12)(1(6/)1322(

6/)2)1(322(

3/)12/)1(32(

3/)2/)1(33(

2/)1(3331

13231

)13233(3

3

1

3)1(1

3

1

3)1(3

1

2

N

NNNSNNNS

NNNS

NNNS

NNNNS

NNNSN

N

iii

N

iiiii

NN

ii

N

ii

N

iii

SN

ii

11

1

1

kwhen

k

kNN

i

ki

1log1

1

SeriesHarmonicthN

kwhenNe

N

i iNH

The error in theapproximation tends toEuler’s constant = 0.57721566

10

1)(

1)(

0

)(

)(1

)(

onsManipulatiAlgebraicGeneral

n

iif

N

iif

N

niif

NNfN

iNf

Izmir University of Economics

Page 12: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

12

Math Review – Modular Arithmetic• A B (mod N) meansA is congruent to B modulo N,If N divides A-B(remainders are the same)

• Example:81 61 1 (mod 10)

• if A B (mod N), then• A + C B + C (mod N) and• AD BD (mod N)

Izmir University of Economics

Page 13: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

13

The P Word – Proof by Induction• There are various ways of proving statements in

data structures analysis• Proof by Induction: It has two standart parts: The

first step is proving a base case. Establishing that a theorem is true for some small (usually degenerate) value(s). This step is almost always trivial.

• Next, an inductive hypothesis is assumed. Generally this means that the theorem is assumed to be true for all cases up to some limit k.Using the assumption, the theorem is then shown to be true for the next value, typically k+1.

Izmir University of Economics

Page 14: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

14

The P Word – Induction Example I• Example: Prove that Fibonacci Numbers F0=1, F1=1, and

Fi=Fi-1+Fi-2 for i > 1, satisfy Fi < (5/3)i for i ≥ 1.

• Proof: Verify that the theorem is true for the trivial cases (base cases): F1=1 < (5/3)1 and, F2 = 2 < (5/3)2. These prove the basis. We now assume that the theorem is true for i = 1, 2, ..., k; this is the inductive hypothesis. To prove the theorem, we need to prove Fk+1<(5/3)k+1.

1)3/5(1

1)3/5)(25/24(1

1)3/5)(25/95/3(1

1)3/5(2)5/3(1)3/5)(5/3(1

1)3/5()3/5(1

11

kkF

kkF

kkF

kkkF

kkkF

kF

kF

kF

Izmir University of Economics

Page 15: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

15

• Example: If N ≥ 1 then

• Proof: For the base case, the theorem is true when N = 1. For the inductive hypothesis, assume the theorem is true for 1 ≤ k ≤ N. Let’s try to prove that it is true for N + 1

6/)12)(1(12 NNNN

i i

6

)32)(2)(1(6

6722)1(

)1(6

)12()1(

2)1(6

)12)(1(1

1

2

2)1(1

21

1

2

NNN

NNN

NNN

N

HypothesisInductivebyNNNNN

ii

NN

ii

N

ii

The P Word – Induction Example II

Izmir University of Economics

Page 16: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

• Proof by Counterexample: Best way for proving that a statement is false.

• Example: The statement Fk ≤ k2 is false. The easiest way to prove this is to compute F11 = 144 > 112 = 121

16

Proof by Counterexample

Izmir University of Economics

Page 17: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

Proof by Contradiction• It proceeds by assuming that the theorem is false and

showing that this assumption implies that some known property is false, and hence the original assumption is erroneous.

• Example: Prove that there is an infinite number of primes.

• Proof: Assume the theorem is false, so that there is some largest prime Pk. Let P1, P2, ..., Pk be all the primes in order and consider N = P1P2...Pk + 1. Clearly, N > Pk, so by assumption N can not be prime.

However, none of P1, P2, ..., Pk divides N exactly, because remainders are all 1. This is a contradiction: numbers are either prime or a product of primes. Hence the original assumption is false implying that the theorem is true.

17Izmir University of Economics

Page 18: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

18

A Brief Introduction to Recursion• A function that is defined in terms of itself is called

recursive. Not all mathematically recursive functions are correctly or efficiently implemented by recursion.

• Example: for all integers x ≥ 0 with f(0)=0

#include <stdio.h>

int F( int X ) { if( X == 0 ) /* base case */ return 0; else return 2 * F( X - 1 ) + X * X;}

main( ){ printf( "F(4) = %d\n", F( 4 ) ); return 0;}

2)1(2)( xxfxf

• If F is called with a value of 4, then 2*F(3)+4*4 will be required to be computed. Thus a call is made to find F(3).

• F(4)=2*F(3)+4*4

• F(3)=2*F(2)+3*3

• F(2)=2*F(1)+2*2

• F(1)=2*F(0)+1*1

• F(0)=0 base case. Recursive calls until a base case. F(-1)=?

• Automatic BookkeepingIzmir University of Economics

Page 19: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

Recursion - Bad

#include <stdio.h>

int Bad( unsigned int N ) { if( N == 0 ) return 0; else return Bad( N / 3 + 1 ) + N - 1;}

main( ){ printf( "Bad is infinite recursion\n" ); return 0;}

19Izmir University of Economics

• Bad(0)=0, Bad(N)=Bad(N/3 + 1) + N – 1• To compute Bad(1), the computer will repeatedly make

calls to Bad(1). Eventually, it will run out of space

Page 20: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

Fundamental Rules of Recursion - I

• 1) Base cases: You must always have some base cases, which can be solved without recursion.

• 2) Making progress: For the cases to be solved recursively, the recursive call must always be to a case that makes progress toward a base case.

Izmir University of Economics 20

Page 21: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

Recursion - Induction

#include <stdio.h>#define PrintDigit( Ch ) ( putchar( ( Ch ) + '0' ) )

/* Print nonnegative N */void PrintOut( unsigned int N ) { if( N >= 10 ) PrintOut( N / 10 ); PrintDigit( N % 10 );}

main( ){ PrintOut( 1369 ); putchar( '\n' ); return 0;}

21Izmir University of Economics

• PrintOut(N) prints out positive integers. PrintDigit(Ch) take a single digit number as character and output it to the terminal

Theorem: Recursive number-printing algorithm is correct for N ≥ 0.Proof (by induction): If N has one digit, then it is correct. Assume it works for all numbers of k or fewer digits. A number of k+1 digits is expressed by its first k digits followed by its least significant digit

By the inductive hypothesis, first part is printed correctly and then the last digit is appended.

)10mod( and 10/ NNN

Page 22: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

• 3) Design rule: Assume that all the recursive calls work. This rule is important. It relieves you of the burden of thinking about the details of bookkeeping.

• 4) Compound interest rule: Never duplicate work by solving the same instance of a problem in separate calls.

• Hidden bookkeeping costs are mostly justifiable. However; It should never be used as a substitute for a simple loop.

Izmir University of Economics 22

Fundamental Rules of Recursion - II

Page 23: 1 CE 221 Data Structures & Algorithms Chapter 1 Introduction Text: Read Weiss, §1.1 – 1.3 Izmir University of Economics.

Homework Assignments

• 1.5, 1.7, 1.8.a, 1.8.b, 1.8.c, 1.9, and 1.12.

• You are requested to study and solve the exercises. Note that these are for you to practice only. You are not to deliver the results to me.

Izmir University of Economics 23