ctdl-03--Đệ quy

5
Đệ quy (Recursion) Đọc phần 1.3 Giảng viên: Nguyễn Mạnh Hiển Khoa Công nghệ thông tin Trường Đại học Thủy Lợi Email: [email protected] Học kỳ 2, năm học 2014-2015

Upload: hoang

Post on 07-Nov-2015

6 views

Category:

Documents


3 download

DESCRIPTION

Cấu trúc dữ liệu, đệ quy

TRANSCRIPT

  • quy (Recursion) c phn 1.3

    Ging vin: Nguyn Mnh Hin Khoa Cng ngh thng tin Trng i hc Thy Li Email: [email protected]

    Hc k 2, nm hc 2014-2015

  • quy

    Hm quy l mt hm c nh ngha bng bn thn n

    VD: f(0) = 0 v f(x) = 2f(x - 1) + x2 vi x > 0

    int f(int x) { if (x == 0) // trng hp c s return 0; else return 2*f(x-1) + x*x; // li gi quy }

  • V d v quy (tip) nh gi hm f(x) = 2f(x - 1) + x2:

    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

    f(1) = 2*0 + 1*1 = 1

    f(2) = 2*1 + 2*2 = 6

    f(3) = 2*6 + 3*3 = 21

    f(4) = 2*21 + 4*4 = 58

    Gp trng hp c s v bt u quay lui

  • quy c th khng kt thc

    iu g xy ra nu ta gi f(-1) sau khi ci t hm f(x) = 2f(x - 1) + x2 nh lc trc?

    Di y l mt hm quy khng kt thc:

    iu g xy ra khi gi: - bad(1)? - bad(2)? - bad(3)?

  • m bo chng trnh quy kt thc

    Hai quy tc vit chng trnh quy ng:

    1. nh ngha trng hp c s

    y l ni quy s kt thc

    2. Li gi quy phi c s tin trin

    Mi bc phi hng dn v pha trng hp c s