Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet114/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   110   111   112   113   114   115   116   117   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

Exercises
7.1-1
Using Figure 7.1 as a model, illustrate the operation of P
ARTITION
on the array
A
D h
13; 19; 9; 5; 12; 8; 7; 4; 21; 2; 6; 11
i
.


174
Chapter 7
Quicksort

x
>
x
x
p
i
j
r
>
x
(a)

x
>
x
x
p
i
j
r

x
>
x
x
p
i
j
r

x
(b)

x
>
x
x
p
i
j
r
Figure 7.3
The two cases for one iteration of procedure P
ARTITION
.
(a)
If
AŒj > x
, the only
action is to increment
j
, which maintains the loop invariant.
(b)
If
AŒj 
x
, index
i
is incremented,
AŒi 
and
AŒj 
are swapped, and then
j
is incremented. Again, the loop invariant is maintained.
7.1-2
What value of
q
does P
ARTITION
return when all elements in the array
AŒp : : r
have the same value? Modify P
ARTITION
so that
q
D b
.p
C
r/=2
c
when all
elements in the array
AŒp : : r
have the same value.
7.1-3
Give a brief argument that the running time of P
ARTITION
on a subarray of size
n
is
‚.n/
.
7.1-4
How would you modify Q
UICKSORT
to sort into nonincreasing order?
7.2
Performance of quicksort
The running time of quicksort depends on whether the partitioning is balanced or
unbalanced, which in turn depends on which elements are used for partitioning.
If the partitioning is balanced, the algorithm runs asymptotically as fast as merge


7.2
Performance of quicksort
175
sort. If the partitioning is unbalanced, however, it can run asymptotically as slowly
as insertion sort. In this section, we shall informally investigate how quicksort
performs under the assumptions of balanced versus unbalanced partitioning.
Worst-case partitioning
The worst-case behavior for quicksort occurs when the partitioning routine pro-
duces one subproblem with
n
1
elements and one with
0
elements. (We prove
this claim in Section 7.4.1.) Let us assume that this unbalanced partitioning arises
in each recursive call. The partitioning costs
‚.n/
time. Since the recursive call
on an array of size
0
just returns,
T .0/
D
‚.1/
, and the recurrence for the running
time is
T .n/
D
T .n
1/
C
T .0/
C
‚.n/
D
T .n
1/
C
‚.n/ :
Intuitively, if we sum the costs incurred at each level of the recursion, we get
an arithmetic series (equation (A.2)), which evaluates to
‚.n
2
/
. Indeed, it is
straightforward to use the substitution method to prove that the recurrence
T .n/
D
T .n
1/
C
‚.n/
has the solution
T .n/
D
‚.n
2
/
. (See Exercise 7.2-1.)
Thus, if the partitioning is maximally unbalanced at every recursive level of the
algorithm, the running time is
‚.n
2
/
. Therefore the worst-case running time of
quicksort is no better than that of insertion sort. Moreover, the
‚.n
2
/
running time
occurs when the input array is already completely sorted—a common situation in
which insertion sort runs in
O.n/
time.

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   110   111   112   113   114   115   116   117   ...   618




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