The Algorithm Design Manual Second Edition


Multiplying Functions



Download 5,51 Mb.
Pdf ko'rish
bet47/488
Sana31.12.2021
Hajmi5,51 Mb.
#273936
1   ...   43   44   45   46   47   48   49   50   ...   488
Bog'liq
2008 Book TheAlgorithmDesignManual

2.4.2

Multiplying Functions

Multiplication is like repeated addition. Consider multiplication by any constant



c > 0, be it 1.02 or 1,000,000. Multiplying a function by a constant can not affect

its asymptotic behavior, because we can multiply the bounding constants in the

Big Oh analysis of c

· f(n) by 1/c to give appropriate constants for the Big Oh

analysis of (n). Thus:



O(c

· f(n)) → O(f(n))

Ω(c



· f(n)) → Ω(f(n))


2 . 5

R E A S O N I N G A B O U T E F F I C I E N C Y



41

Θ(c



· f(n)) → Θ(f(n))

Of course, must be strictly positive (i.e., c > 0) to avoid any funny business,

since we can wipe out even the fastest growing function by multiplying it by zero.

On the other hand, when two functions in a product are increasing, both are

important. The function O(n! log n) dominates n! just as much as log dominates

1. In general,



O((n))

∗ O(g(n)) → O(f(n∗ g(n))

Ω((n))



∗ Ω(g(n)) → Ω(f(n∗ g(n))

Θ((n))



∗ Θ(g(n)) → Θ(f(n∗ g(n))

Stop and Think: Transitive Experience

Problem: Show that Big Oh relationships are transitive. That is, if (n) = O(g(n))

and g(n) = O(h(n)), then (n) = O(h(n)).



Solution: We always go back to the definition when working with the Big Oh. What

we need to show here is that (n)



≤ c

3

h(n) for n > n

3

given that (n)



≤ c

1

g(n) and



g(n)

≤ c

2

h(n), for n > n

1

and n > n



2

, respectively. Cascading these inequalities,

we get that

(n)

≤ c

1

g(n)



≤ c

1

c

2

h(n)

for n > n

3

= max(n



1

, n

2

).



2.5

Reasoning About Efficiency

Gross reasoning about an algorithm’s running time of is usually easy given a precise

written description of the algorithm. In this section, I will work through several

examples, perhaps in greater detail than necessary.



2.5.1

Selection Sort

Here we analyze the selection sort algorithm, which repeatedly identifies the small-

est remaining unsorted element and puts it at the end of the sorted portion of the

array. An animation of selection sort in action appears in Figure

2.5

, and the code



is shown below:


42

2 .


A L G O R I T H M A N A L Y S I S

S  E  L  E  C  T  I  O  N  S  O  R  T

C  E  L  E  S  T  I  O  N  S  O  R  T

C  E  L  E  S  T  I  O  N  S  O  R  T

C  E  L  E  S  T  I  O  N  S  O  R  T

C  E  E  L  S  T  I  O  N  S  O  R  T

C  E  E  L  S  T  I  O  N  S  O  R  T

C  E  E  I  S  T  L  O  N  S  O  R  T

C  E  E  I  L  T  S  O  N  S  O  R  T

C  E  E  I  L  N  S  O  T  S  O  R  T

C  E  E  I  L  N  S  O  T  S  O  R  T

C  E  E  I  L  N  O  S  T  S  O  R  T

C  E  E  I  L  N  O  S  T  S  O  R  T

C  E  E  I  L  N  O  O  T  S  S  R  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

C  E  E  I  L  N  O  O  R  S  S  T  T

Figure 2.5: Animation of selection sort in action

selection_sort(int s[], int n)

{

int i,j;


/* counters */

int min;


/* index of minimum */

for (i=0; i

min=i;

for (j=i+1; j

if (s[j] < s[min]) min=j;

swap(&s[i],&s[min]);

}

}

The outer loop goes around times. The nested inner loop goes around n



−i−1

times, where is the index of the outer loop. The exact number of times the if

statement is executed is given by:

S(n) =

n

1



i=0



n

1



j=i+1

1 =

n

1



i=0



n

− i − 1

What this sum is doing is adding up the integers in decreasing order starting from



n

− 1, i.e.

S(n) = (n

− 1) + (n − 2) + (n − 3) + . . . + 2 + 1

How can we reason about such a formula? We must solve the summation formula

using the techniques of Section

1.3.5


(page

17

) to get an exact value. But, with



the Big Oh we are only interested in the order of the expression. One way to think

about it is that we are adding up n



− 1 terms, whose average value is about n/2.

This yields S(n)



≈ n(n − 1)/2.


2 . 5

R E A S O N I N G A B O U T E F F I C I E N C Y




Download 5,51 Mb.

Do'stlaringiz bilan baham:
1   ...   43   44   45   46   47   48   49   50   ...   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