The Algorithm Design Manual Second Edition



Download 5,51 Mb.
Pdf ko'rish
bet131/488
Sana31.12.2021
Hajmi5,51 Mb.
#273936
1   ...   127   128   129   130   131   132   133   134   ...   488
Bog'liq
2008 Book TheAlgorithmDesignManual

n)). Given the existence of an Ω(log n) lower

bound for sorting, how can this be possible?

4-29. [5] Mr. B. C. Dull claims to have developed a new data structure for priority queues

that supports the operations InsertMaximum, and Extract-Max—all in O(1) worst-

case time. Prove that he is mistaken. (Hint: the argument does not involve a lot of

gory details—just think about what this would imply about the Ω(log n) lower

bound for sorting.)

Searching

4-30. [3] A company database consists of 10,000 sorted names, 40% of whom are known as

good customers and who together account for 60% of the accesses to the database.

There are two data structure options to consider for representing the database:

• Put all the names in a single array and use binary search.

• Put the good customers in one array and the rest of them in a second array.

Only if we do not find the query name on a binary search of the first array do

we do a binary search of the second array.



4 . 1 1

E X E R C I S E S



143

Demonstrate which option gives better expected performance. Does this change

if linear search on an unsorted array is used instead of binary search for both

options?


4-31. [3] Suppose you are given an array of sorted numbers that has been circularly

shifted k positions to the right. For example,

{35425152729is a sorted array

that has been circularly shifted = 2 positions, while



{27293542515has been

shifted = 4 positions.



• Suppose you know what is. Give an O(1) algorithm to find the largest

number in A.



• Suppose you do not know what is. Give an O(lg n) algorithm to find the

largest number in A. For partial credit, you may give an O(n) algorithm.

4-32. [3] Consider the numerical 20 Questions game. In this game, Player 1 thinks of a

number in the range 1 to n. Player 2 has to figure out this number by asking the

fewest number of true/false questions. Assume that nobody cheats.

(a) What is an optimal strategy if in known?

(b) What is a good strategy is is not known?

4-33. [5] Suppose that you are given a sorted sequence of distinct integers



{a

1

, a

2

, . . . , a

n

}.

Give an O(lg n) algorithm to determine whether there exists an index such as



a

i

i. For example, in



{−10, −3357}a

3

= 3. In



{234567}, there is no

such i.

4-34. [5] Suppose that you are given a sorted sequence of distinct integers

{a

1

, a

2

, . . . , a

n

},

drawn from 1 to where n < m. Give an O(lg n) algorithm to find an integer



≤ m

that is not present in a. For full credit, find the smallest such integer.

4-35. [5] Let be an n

×m integer matrix in which the entries of each row are sorted in

increasing order (from left to right) and the entries in each column are in increasing

order (from top to bottom). Give an efficient algorithm to find the position of an

integer in , or to determine that is not there. How many comparisons of x

with matrix entries does your algorithm use in worst case?

Implementation Challenges

4-36. [5] Consider an n

× n array containing integer elements (positive, negative, and

zero). Assume that the elements in each row of are in strictly increasing order,

and the elements of each column of are in strictly decreasing order. (Hence there

cannot be two zeroes in the same row or the same column.) Describe an efficient

algorithm that counts the number of occurrences of the element 0 in A. Analyze its

running time.

4-37. [6] Implement versions of several different sorting algorithms, such as selection sort,

insertion sort, heapsort, mergesort, and quicksort. Conduct experiments to assess

the relative performance of these algorithms in a simple application that reads a

large text file and reports exactly one instance of each word that appears within it.

This application can be efficiently implemented by sorting all the words that occur

in the text and then passing through the sorted sequence to identify one instance

of each distinct word. Write a brief report with your conclusions.



144

4 .


S O R T I N G A N D S E A R C H I N G

4-38. [5] Implement an external sort, which uses intermediate files to sort files bigger

than main memory. Mergesort is a good algorithm to base such an implementation

on. Test your program both on files with small records and on files with large

records.

4-39. [8] Design and implement a parallel sorting algorithm that distributes data across

several processors. An appropriate variation of mergesort is a likely candidate. Mea-

sure the speedup of this algorithm as the number of processors increases. Later,

compare the execution time to that of a purely sequential mergesort implementa-

tion. What are your experiences?

Interview Problems

4-40. [3] If you are given a million integers to sort, what algorithm would you use to sort

them? How much time and memory would that consume?

4-41. [3] Describe advantages and disadvantages of the most popular sorting algorithms.

4-42. [3] Implement an algorithm that takes an input array and returns only the unique

elements in it.

4-43. [5] You have a computer with only 2Mb of main memory. How do you use it to sort

a large file of 500 Mb that is on disk?

4-44. [5] Design a stack that supports push, pop, and retrieving the minimum element

in constant time. Can you do this?

4-46. [6] You are given 12 coins. One of them is heavier or lighter than the rest. Identify

this coin in just three weighings.




Download 5,51 Mb.

Do'stlaringiz bilan baham:
1   ...   127   128   129   130   131   132   133   134   ...   488




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish