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

Bài t p 9

Nhi u d ng m u đ duy t m ng mà ta đã g p cũng có th đ

c vi t theo cách đ quy. Đó

ể ượ

ế

không ph i là cách th

ng dùng, nh ng là m t bài t p h u ích.

ườ

ư

1.

Hãy vi t m t ph

ng th c có tên

ế

ươ

maxInRange, nh n vào m t m ng s nguyên mà m t kho ng ch s

ỉ ố

(lowIndex và highIndex), r i tìm giá tr l n nh t trong m ng, nh ng ch xét nh ng ph n t

ị ớ

ư

ầ ử

gi a

ữ lowIndex và highIndex, k c hai đ u này. Ph ng th c ph i đ c vi t theo cách đ quy. N u chi u

ể ả

ươ

ả ượ

ế

ế

dài c a kho ng b ng 1, nghĩa là n u

ế lowIndex == highIndex, thì ta bi t ngay r ng ph n t duy nh t

ế

ầ ử

trong kho ng ph i là giá tr l n nh t. Do đó đây là tr

ng h p c s . N u có nhi u ph n t trong

ị ớ

ườ

ợ ơ ở ế

ầ ử

kho ng, thì ta có th chia m ng làm đôi, tìm c c đ i trên m i ph n, r i sau đó l y giá tr l n h n trong

ự ạ

ị ớ

ơ

s hai c c đ i tìm đ

c.

ự ạ

ượ

2.

Các ph

ng th c nh

ươ

ư maxInRange có th gây lúng túng khi dùng. Đ tìm ph n t l n nh t trong m ng,

ầ ử ớ

ta ph i cung c p m t kho ng bao g m toàn b m ng đó.

ộ ả

double

max = maxInRange(array, 0, a.length-1);

Hãy vi t m t ph

ng th c có tên

ế

ươ

max nh n tham s là m t m ng r i dùng

maxInRange đ tìm và tr

l i giá tr l n nh t. Các ph

ng th c nh

ị ớ

ươ

ư max đôi khi còn đ c g i là

ượ ọ

ph

ng th c gói b c

ươ

vì chúng

cung c p m t l p khái ni m xung quanh m t ph

ng th c l ng c ng và giúp nó d dùng. Ph

ng th c

ộ ớ

ươ

ứ ủ

ươ

mà th c s th c hi n tính toán đ

c g i là

ự ự ự

ượ ọ

ph

ng th c tr giúp

ươ

.

3.

Hãy vi t m t phiên b n

ế

ả find theo cách đ quy và dùng đ n d ng m u gói b c-tr giúp.

ế

find c n ph i

nh n m t m ng các s nguyên và m t s nguyên m c tiêu. Nó c n ph i tr l i ch s c a v trí đ u tiên

ộ ố

ả ả ạ

ỉ ố ủ ị

t i đó xu t hi n s nguyên m c tiêu, ho c tr l i -1 n u không xu t hi n.

ệ ố

ả ạ

ế

Bài t p 10

M t cách không hi u qu l m đ s p x p các ph n t trong m ng là tìm ph n t l n nh t

ả ắ

ể ắ

ế

ầ ử

ầ ử ớ

r i đ i ch nó cho ph n t th nh t, sau đó tìm ph n t l n th hai r i đ i ch v i ph n t th hai, và

ồ ổ

ầ ử ứ

ầ ử ớ

ồ ổ

ỗ ớ

ầ ử ứ

c nh v y. Cách này g i là

ư ậ

s p x p ch n

ế

(xem http://vi.wikipedia.org/wiki/S p_x p_ch n

ế

ọ ).

1.

Hãy vi t m t ph

ng th c mang tên

ế

ươ

indexOfMaxInRange nh n vào m t m ng s nguyên, tìm ph n t

ầ ử

l n nh t trong kho ng cho tr

c, r i tr l i ch s c a nó. B n có th s a l i phiên b n

ướ

ả ạ

ỉ ố ủ

ể ử ạ

ả maxInRange hay

b n có th vi t t đ u m t phiên b n t

ng tác v i máy.

ể ế ừ ầ

ả ươ

2.

Vi t m t ph

ng th c có tên

ế

ươ

swapElement nh n m t m ng s nguyên cùng hai ch s , r i đ i ch hai

ỉ ố ồ ổ

ph n t t i các ch s đó.

ầ ử ạ

ỉ ố

3.

Vi t m t ph

ng th c có tên

ế

ươ

selectionSort nh n vào m t m ng các s nguyên và trong đó

dùngindexOfMaxInRange cùng swapElement đ x p m ng t nh đ n l n.

ể ế

ỏ ế ớ

Bài t p 11

Vi t m t ph

ng th c có tên

ế

ươ

letterHist nh n m t chu i làm tham s r i tr l i histogram

ố ồ ả ạ

c a các ch cái trong chu i. Ph n t th không c a histogram c n ph i ch a s ch a trong chu i (c

ầ ử ứ

ứ ố ữ

ch in và th

ng); ph n t th 25 c n ph i ch a s ch z. L i gi i c a b n ch đ

c duy t chu i này

ườ

ầ ử ứ

ứ ố ữ

ả ủ

ỉ ượ

đúng m t l n.

ộ ầ

Bài t p 12

M t t đ

c g i là “doubloon” n u trong t đó, m i ch cái xu t hi n đúng hai l n. Ch ng

ộ ừ ượ ọ

ế

h n, các t sau đây là doubloon mà tôi đã tìm th y trong cu n t đi n.

ố ừ ể

Abba, Anna, appall, appearer, appeases, arraigning, beriberi, bilabial, boob, Caucasus, coco,
Dada, deed, Emmett, Hannah, horseshoer, intestines, Isis, mama, Mimi, murmur, noon,
Otto, papa, peep, reappear, redder, sees, Shanghaiings, Toto

Hãy vi t m t ph

ng th c có tên

ế

ươ

isDoubloon đ tr l i

ể ả ạ true n u t đã cho là m t doubloon và

ế ừ

false n u

ế

không ph i.

Bài t p 13

Hai t là t đ o (anagram) n u nh chúng có ch a cùng nh ng ch cái (đ ng th i cùng s

ừ ả

ế

ư

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.