• Nie Znaleziono Wyników

WdI, Ćwiczenia 01

N/A
N/A
Protected

Academic year: 2021

Share "WdI, Ćwiczenia 01"

Copied!
14
0
0

Pełen tekst

(1)

WdI, Ćwiczenia 01

Tomasz Waleń

Wydział Matematyki, Informatyki i Mechaniki, UW

(2)

Zadanie 1

Dane: ciąg n liczb a0, . . . , an−1złożony z zer i jedynek.

Wynik: permutacja ciągu a0, ..., an−1w której zera poprzedzają jedynki.

Dla ciągu

1, 0, 0, 1, 0, 1, 1 wynik powinien być

0, 0, 0, 1, 1, 1, 1.

(3)

Zadanie 1 - rozwiązanie 1

Algorytm 1: RozwiązanieBrutalne niech l0oznacza liczbę 0 w a0, . . . , an−1

niech l1oznacza liczbę 1 w a0, . . . , an−1 zwróć ciąg{0} × l0+{1} × l1

Niestety to jest oszustwo!

Bardziej eleganckie byłoby rozwiązanie w którym jedynie zamieniamy elementy miejscami.

(4)

Zadanie 1 - rozwiązanie 1

Algorytm 2: RozwiązanieBrutalne niech l0oznacza liczbę 0 w a0, . . . , an−1

niech l1oznacza liczbę 1 w a0, . . . , an−1 zwróć ciąg{0} × l0+{1} × l1

Niestety to jest oszustwo!

Bardziej eleganckie byłoby rozwiązanie w którym jedynie zamieniamy elementy miejscami.

(5)

Zadanie 1 - rozwiązanie 2

Algorytm 3: Rozwiązanie2 l =0

p = n− 1 while l < p do

if al=0 then l = l +1 end

else if ap=1 then p = p− 1 end

else

zamień zawartość ali ap

l = l +1 p = p− 1 end

end

(6)

Zadanie 1 - rozwiązanie 3

Algorytm 4: Rozwiązanie3 l =0

p = n− 1 while l < p do

while l < p and al=0 do l = l +1

end

while l < p and ap=1 do p = p− 1

end

if l < p then

zamień zawartość ali ap

l = l +1 p = p− 1 end

end

(7)

Zadanie 1 - schemat rozwiązania

0 1 ?

a0 az ai an−1

?

(8)

Zadanie 1 - schemat rozwiązania

0 1 ?

a0 az ai an−1

0

(9)

Zadanie 1 - schemat rozwiązania

0 1 ?

a0 az aiai+1 an−1

0

(10)

Zadanie 1 - rozwiązanie 4

Algorytm 5: Rozwiązanie3 z =0

i =0

while i < n do

// niezmiennik elementy a0, . . . , az−1mają wartości 0 // elementy az, . . . , ai−1mają wartości 1

if ai=0 then if i̸= z then

zamień zawartość aii az

end z = z +1 end

i = i +1 end

(11)

Zadanie 2

Dane: ciąg długości n, a0, . . . , an−1złożony z liter C, B i N.

Wynik: permutacja ciągu a0, . . . , an−1w której litery C poprzedzają litery B a litery N są na końcu.

Dla ciągu

B,C,C,N,B,N,C,B wynikiem powinien być ciąg

C,C,C,B,B,B,N,N

(12)

Zadanie 2 - schemat rozwiązania

C B ? N

a0 ac ab am an−1

?

(13)

Zadanie 2 - rozwiązanie

Algorytm 6: Flaga Holenderska - rozwiązanie c =0; b = 0; m = n− 1

while b≤ m do

// niezmiennik:0≤j<caj= C,c≤j<baj= B,m<j<naj= N switch ab do

case C do

if c̸= b then zamień aci ab

b = b +1 c = c +1 case B do

b = b +1 case N do

if b̸= m then zamień ami ab

m = m− 1 end

end

(14)

Dziękuję za uwagę!

Cytaty

Powiązane dokumenty

Pozwala to całkowicie uniezależnić proces tworze- nia i odtwarzania kopii bezpieczeństwa od struktury archiwizowanych zbiorów, zastosowanego systemu plików czy też

Celem projektu projektu FOLA (the Friend of a Lazy Administrator) realizowa- nego w ramach seminarium magisterskiego było stworzenie modułowego syste- mu służącego do

Kod modułu, który jest przedmiotem niniejszej pracy rozpowszechniany jest na zasadach licencji GNU

Algorytmy sortowania oparte na porównywaniu elementów mają teoretyczne dolne oszacowanie liczby operacji dominujących rzędu n lg n , a. trywialne dolne oszacowanie

 Niedostateczna ochrona przed tsunami Zalanie wodą całego terenu EJ Zalanie silników Diesla, utrata zasilania.. elektrycznego prądem przemiennym,

Gdyby każdy człowiek zakopał w swym ogródku także krótkożyciowe odpady średnioaktywne na niego przypadające, zwiększyłby aktywność ogródka o nie więcej

Waldemar Raźniak Wydział Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego 4... Waldemar Raźniak Wydział Matematyki, Informatyki i Mechaniki Uniwersytetu

sekretariatu Pracowni w terminie do rozpoczęcia kolejnego ćwiczenia, czyli przeważnie w ciągu 1-go tygodnia od wykonania ćwiczenia. Przekroczenie tego terminu oznacza obniżenie oceny