THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 127

}

}

Vì cards có ki u là

Card[], nên m t ph n t c a

ầ ử ủ cards thì có ki u là

Card. B i v y

ở ậ cards[i] là m t đ i s

ộ ố ố

h p l cho

ợ ệ

printCard.

13.8 Tìm ki m

ế

Ph

ng th c ti p theo mà tôi s vi t là

ươ

ế

ẽ ế

findCard, đ tìm ki m trong m t m ng ch a

ế

ứ Card, xem li u r ng

ệ ằ

m ng này có ch a m t lá bài c th hay không. Ph

ng th c này cho tôi m t c h i bi u di n hai thu t

ụ ể

ươ

ộ ơ ộ

toán: tìm ki m tuy n tính

ế

ế

tìm ki m phân đôi

ế

.

Tìm ki m tuy n tính th t d hi u; ta duy t c c bài r i so sánh t ng lá bài v i lá mà ta đang tìm. N u

ế

ế

ậ ễ ể

ệ ả ỗ

ế

th y, ta s tr v ch s t i đó lá bài xu t hi n. N u không có trong c bài, ta tr v -1.

ẽ ả ề ỉ ố ạ

ế

ả ề

public static int

findCard(Card[] cards, Card card) {

for

(

int

i = 0; i< cards.length; i++) {

if

(sameCard(cards[i], card)) {

return

i;

}

}

return

-1;

}

Các đ i s c a

ố ố ủ findCard là card và cards. D ng nh th t kì qu c khi có m t bi n cùng tên v i ki u d

ườ

ư ậ

ế

li u (bi n

ế card thu c ki u

ể Card). Ta có th nh n th y s khác bi t vì bi n b t đ u b ng ch cái th ng.

ấ ự

ế

ắ ầ

ườ

Ph

ng th c này tr l i ngay khi nó phát hi n ra lá bài c n tìm, ncos nghĩa là ta không c n ph i duy t c

ươ

ả ạ

ệ ả

c bài n u đã tìm đ

c lá bài ta c n. Còn n u ta đ n đi m cu i vòng l p, ta bi t r ng lá bài đó không có

ế

ượ

ế

ế

ế ằ

trong c .

N u các quân bài trong c không đ

c s p x p, thì ch ng có cách tìm ki m nào nhanh h n cách này. Ta

ế

ượ ắ

ế

ế

ơ

ph i nhìn t ng lá bài m t, b i n u không ta s không ch c r ng quân bài mong mu n không đó.

ở ế

ắ ằ

Nh ng khi b n tra t trong m t cu n t đi n, b n l i không tìm tuy n tính qua t ng t m t, b i l các

ư

ố ừ ể

ạ ạ

ế

ừ ộ

ở ẽ

t đ u đ

c x p th t r i. Do v y, có kh năng b n s dùng m t thu t toán t

ng t nh tìm ki m chia

ừ ề

ượ ế

ứ ự ồ

ạ ẽ

ươ

ư

ế

đôi:

1. B t đ u m t ch gi a cu n t đi n.

ắ ầ ở ộ

ỗ ữ

ố ừ ể

2. Ch n m t t trên trang đó r i so sánh v i t c n tra.

ộ ừ

ớ ừ ầ

3. N u b n tìm th y t c n tra thì d ng l i.

ế

ấ ừ ầ

4. N u t c n tra x p sau t th y đ

c trên trang, thì hãy l t đ n m t ch nào đó phía sau c a cu n t

ế ừ ầ

ế

ừ ấ

ượ

ậ ế

ố ừ

đi n, r i tr l i b

c 2.

ồ ở ạ ướ

5. N u t c n tra x p tr

c t th y đ

c trên trang, thì hãy l t đ n m t ch nào đó phía tr

c c a cu n t

ế ừ ầ

ế

ướ ừ ấ

ượ

ậ ế

ướ ủ

ố ừ

đi n, r i tr l i b

c

ồ ở ạ ướ 2.

N u b n đã tìm đ n ch mà có hai t li n k nhau trong m t trang, và t c n tra l i n m gi a hai t đó,

ế

ế

ừ ề

ừ ầ

ạ ằ

thì có th k t lu n r ng t c n tra không có trong cu n t đi n.

ể ế

ậ ằ

ừ ầ

ố ừ ể

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.