Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet131/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   127   128   129   130   131   132   133   134   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

Lemma 8.4
Given
n b
-bit numbers and any positive integer
r
b
, R
ADIX
-S
ORT
correctly sorts
these numbers in
‚..b=r/.n
C
2
r
//
time if the stable sort it uses takes
‚.n
C
k/
time for inputs in the range
0
to
k
.
Proof
For a value
r
b
, we view each key as having
d
D d
b=r
e
digits of
r
bits
each. Each digit is an integer in the range 0 to
2
r
1
, so that we can use counting
sort with
k
D
2
r
1
. (For example, we can view a 32-bit word as having four 8-bit
digits, so that
b
D
32
,
r
D
8
,
k
D
2
r
1
D
255
, and
d
D
b=r
D
4
.) Each pass of
counting sort takes time
‚.n
C
k/
D
‚.n
C
2
r
/
and there are
d
passes, for a total
running time of
‚.d.n
C
2
r
//
D
‚..b=r/.n
C
2
r
//
.
For given values of
n
and
b
, we wish to choose the value of
r
, with
r
b
,
that minimizes the expression
.b=r/.n
C
2
r
/
. If
b <
b
lg
n
c
, then for any value
of
r
b
, we have that
.n
C
2
r
/
D
‚.n/
. Thus, choosing
r
D
b
yields a running
time of
.b=b/.n
C
2
b
/
D
‚.n/
, which is asymptotically optimal. If
b
b
lg
n
c
,
then choosing
r
D b
lg
n
c
gives the best time to within a constant factor, which
we can see as follows. Choosing
r
D b
lg
n
c
yields a running time of
‚.bn=
lg
n/
.
As we increase
r
above
b
lg
n
c
, the
2
r
term in the numerator increases faster than
the
r
term in the denominator, and so increasing
r
above
b
lg
n
c
yields a running
time of
.bn=
lg
n/
. If instead we were to decrease
r
below
b
lg
n
c
, then the
b=r
term increases and the
n
C
2
r
term remains at
‚.n/
.
Is radix sort preferable to a comparison-based sorting algorithm, such as quick-
sort? If
b
D
O.
lg
n/
, as is often the case, and we choose
r
lg
n
, then radix sort’s
running time is
‚.n/
, which appears to be better than quicksort’s expected running
time of
‚.n
lg
n/
. The constant factors hidden in the

-notation differ, however.
Although radix sort may make fewer passes than quicksort over the
n
keys, each
pass of radix sort may take significantly longer. Which sorting algorithm we prefer
depends on the characteristics of the implementations, of the underlying machine
(e.g., quicksort often uses hardware caches more effectively than radix sort), and
of the input data. Moreover, the version of radix sort that uses counting sort as the
intermediate stable sort does not sort in place, which many of the
‚.n
lg
n/
-time
comparison sorts do. Thus, when primary memory storage is at a premium, we
might prefer an in-place algorithm such as quicksort.

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   127   128   129   130   131   132   133   134   ...   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