Cvičenie č. 3 - Triedenie, Číselné sústavy, prvé riadky v Pascale
Poznámky k triedeniu z DÚ č. 1
Bubble sort
Vstup: pole A dlžky n
for i := 1 to n - 1
for j := 1 to n - i - 1
if A[j] < A[j + 1]
swap(A[j], A[j+1]) # prehoď hodnoty A[j] a A[j+1]
return A # zostupne zotriedené pole ANa zamyslenie:
- Aká je presná časová zložitosť tejto implementácie?
- Aká je asymptotická zložitosť v najlepšom a najhoršom prípade?
Insertion sort
Vstup: pole A dlžky n
for i := 0 to n - 2
j := i + 1
tmp = A[j]
while j > 0 and tmp > a[j-1]
if A[j] < A[j + 1]
A[j] = A[j-1])
j = j - 1
a[j] = tmp
return A # zostupne zotriedené pole ANa zamyslenie
- Aká je časová zložitošť tohto algoritmu v najhoršom prípade ? Na akom vstupe nastáva?
- Aká je časová zložitosť v najlepšom prípade? Na akom vstupne nastáva?
Counting sort
Vstup: pole A dĺžky n
max = najväčšia hodnota v poli A
Pomocné premenné:
count - pole dĺžky max, na začiatku samé 0
for i in A:
count[i] = 1
j := 1
for i := 1 to max:
if count[i] > 0
A[j] := i
j = j + 1
return ANa zamyslenie:
- Aká je asymptotická časová zložitosť tohto algoritmu?
Úlohy
Pseudokód
Logické operátory
Swap
Navrhnite jednoduchý algoritmus prehodenia hodnôt dvoch celočíslených premenných A a B bez akejkoľvek pomocnej premennej.
Správne uzátvorkovanie
Na vstup dostanete postupnosť zátvoriek S napr. S=”(()())()”. Navrhnite algoritmus, ktorý skontroluje správnosť uzátvorkovania, tj. vŕati True ak je uzátvorkovanie správne a False inak.
Bin2Dec a Dec2Bin
Navrhnite algoritmus prevodu binárneho čísla na číslo desiatkové a späť.
Pascal
Jednoduchý program:
Program priklad;
Var
Num1, Num2, Sum : Integer;
a, b, c, d: Double;
Begin
Write('Input number 1:');
Readln(Num1);
Writeln('Input number 2:');
Readln(Num2);
Sum := Num1 + Num2; {scitanie}
Writeln(Sum);
Readln;
End. Domáce úlohy
Vašu domácu úlohu tentokrát nájdete v CodEx-e. Ide o úlohy PPPPP 0.2 Hello World 2 a Suma.
Niekoľko z vás som v CodEx-e nenašiel, zariadte si účet a napíšte mi.
Termín odovzdania: 26. 10. 2016 (23:59)