1. Trang chủ
  2. » Giáo án - Bài giảng

Bài toán và thuật toán

19 458 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài toán và Thuật toán
Trường học Đại Học Khoa Học Tự Nhiên
Chuyên ngành Khoa Học Máy Tính
Thể loại Báo cáo môn học
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 331 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mét sè vÝ dô vÒ thuËt to¸n TiÕp ThuËt to¸n t×m kiÕm tuÇn tù Sequential Search ThuËt to¸n t×m kiÕm nhÞ ph©n Binary Search... Nếu không, tăng i lên một đơn vị và duyệt tiếp... Tổng kết:-

Trang 1

Bµi 4

Bµi to¸n vµ thuËt to¸n

(tiÕt thø 5)

Trang 2

Mét sè vÝ dô vÒ thuËt to¸n (TiÕp)

ThuËt to¸n t×m kiÕm tuÇn tù (Sequential Search)

ThuËt to¸n t×m kiÕm nhÞ

ph©n (Binary Search)

Trang 3

Bµi to¸n 1: Cho d·y A gåm N sè nguyªn kh¸c nhau a1,a2,… aN

sè nguyªn k T×m chØ sè i (nÕu cã) mµ ai = k

Trang 4

1 Xác định các yếu tố của bài toán:

Input: ?

N, a1, a2,….aN, k

Output: ?

Chỉ số i mà ai = k

Trang 5

2 Nêu ý tưởng giải bài toán:

Xét bài toán trong trường hợp:

N=5, k= 9

Kết quả ???

Vị trí thứ 2 (i = 2)

Suy nghĩ thế nào để được kết quả đó?? Nếu N = 1000 thì sao nhỉ?????

? ? ?

? ? ?

Trang 6

6 9 15 17 29

N= 5, k = 9

Duyệt từng phần tử từ a 1 đến a N

Vậy cần những biến nào? Khởi tạo ra sao? ý tư ởng thế nào?

Cần 1 biến:

- Biến chạy i (i có giá trị từ 1 đến 5).

Trang 7

ý tưởng:

Duyệt phần tử thứ i, bắt đầu từ a 1 Nếu a i = k thì đưa ra i rồi kết thúc Nếu không, tăng i lên một đơn vị và duyệt tiếp.

Khi nào thì bài toán kết thúc?

Khi có i thỏa mãn hoặc khi đã duyệt hết các phần tử (i > N)

i = 1

a1

N

Trang 8

N, a 1 , a 2 ,….a N , k

i  1

i >N

a i = k

i  i + 1

Kh«ng

cã phÇn

tö nµo cã

gt = k

+

6 9 15 17 29

a 1 a 2 a 3 a 4 a 5

§­a ra i råi kÕt thóc

k = 9

5, 6, 9,15,17,29,9

i  1

1 >5 ?

6 = 9 ?

i  1 + 1

2 >5 ?

Trang 9

6 9 15 17 29

a 1 a 2 a 3 a 4 a 5

N=5, k= 9

Trang 10

Bài toán 2: Cho dãy A tăng gồm N số nguyên

khác nhau a 1 ,a 2 ,… a N và số nguyên k Tìm chỉ số

i (nếu có) mà ai = k

1 Xác định các yếu tố của bài toán:

Input: ?

N, a1, a2,….aN, k

Output: ?

Vị trí số có giá trị bằng k (vị trí i)

Trang 11

2 Nêu ý tưởng giải bài toán:

Xét bài toán trong trường hợp:

N=5, k= 17

Kết quả ???

Số ở vị trí thứ 4

Nhưng nếu N = 1.000.000.000 số thì sao?

a 1 a 2 a 3 a 4 a 5

Trang 12

6 9 15 17 29

N= 5, k = 17

Cách 1: Dùng thuật tìm kiếm tuần tự!!!!

Cách 2: Dùng thuật nhị phân (…chia để trị…).

Nhận xét:

-Dãy tăng nên nếu có phần tử a i = k thì phần tử đó là duy nhất.

Nếu chọn mốc là a 3 thì có nhận định gì?

Trang 13

ý tưởng:

a giua > k a i

nếu có thì nằm

ở phía nào

lập dãy mới

ntn ?.

a giua = k Vị trí cần tìm

a giua < k a i nếu có thì nằm

ở phía nào

lập dãy mới ntn?.

Cuoi = Giua - 1 Dau = Giua + 1

Giua = [(Dau+Cuoi)/2]

aGiua

Trang 14

Chúng ta cần mấy biến? ?????????

- Biến Dau, Cuoi để chỉ vị trí đầu tiên và cuối

cùng của dãy (mỗi lần kiểm tra phải lập một dãy mới do đó phải có 2 biến này)

- Biến Giua = [(Dau + Cuoi)/2] (phần nguyên)

Khởi tạo biến thế nào?

- Dau = 1, Cuoi = N (xét dãy A đầu tiên).

Trang 15

N, d·y A, k

Dau1; CuoiN

Giua[(Dau+Cuoi)/2]

a giua = k

Giua

a giua > k Cuoi Giua … 1

Dau Giua +1

Dau>Cuoi

Kh«ng cã

+

-+

-+

-6 9 15 17 29

a 1 a 2 a 3 a 4 a 5

So thu 4

5,6,9,15,17,29,17

Dau1; Cuoi5

Giua[(1+5)/2] = 3

Dau 3+1

4>5?

Giua[(4+5)/2] = 4

17=17?

k = 17

Trang 16

LÇn 1 Giua = 3 Dau = 4 Cuoi = 5

N=5, k= 17

a 1 a 2 a 3 a 4 a 5

Trang 17

Tổng kết:

- Phân biệt 2 thuật toán: tìm kiếm tuần tự và tìm kiếm nhị phân

- Tính ưu việt của từng thuật toán

- Bài tập về nhà:

1: 1.42 – 1.48/21 SBT

2: Dùng thuật toán tìm kiếm tuần tự để giải quyết bài toán sau: Cho dãy A gồm N số nguyên

a1, a2,….,aN Tìm số các số dương trong dãy

Trang 18

Hướng dẫn:

-Cần 2 biến: Biến i để duyệt lần lượt các

phần tử.

Biến t để đếm các phần tử >0

-Khởi tạo biến: i = 1, t = 0

lên 1 đơn vị (t = t+1) sau đó tăng i lên 1 đơn

vị để duyệt phần tử tiếp theo Bài toán kết

thúc khi i>N.

Trang 19

C¶m ¬n c¸c thÇy – c« gi¸o!! c¶m ¬n c¸c con häc sinh th©n yªu!

Ngày đăng: 03/09/2013, 10:10

TỪ KHÓA LIÊN QUAN

w