Wstęp do programowania / Ćwiczenia 3: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Daria (dyskusja | edycje)
Daria (dyskusja | edycje)
Linia 303: Linia 303:
   ib:=1;
   ib:=1;
   B[ib]:=A[1];  
   B[ib]:=A[1];  
   '''for''' ia:=2 '''to''' N '''do''' '''begin'''
   '''for''' ia:=2 '''to''' N '''do'''
     '''if''' A[ia] >= B[ib] '''then''' '''begin'''
     '''if''' A[ia] >= B[ib] '''then''' '''begin'''
       ib:=ib+1;     
       ib:=ib+1;     
Linia 312: Linia 312:
       B[z]:=A[ia];
       B[z]:=A[ia];
     '''end''';
     '''end''';
    ia:=ia+1;
  '''end''';
   MaxNiemalejący:=ib;
   MaxNiemalejący:=ib;
  '''end''';
  '''end''';
Linia 321: Linia 319:


''Koszt pamięciowy'': liniowy względem N
''Koszt pamięciowy'': liniowy względem N
</div>
</div>
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Pytanko 1''' 
<div class="mw-collapsible-content" style="display:none">
Czy algorytm zachłanny by zadziałał (przedłużamy podciąg o ile rozpatrywany element jest większy równy od ostatniego elementu dotychczas znalezionego podciągu) ?
</div>
</div>
</div>
</div>

Wersja z 12:45, 18 lip 2006

To są zadania na wyszukiwanie binarne.

Zadanie 1 (Pierwsze wystąpienie x)

Dana jest posortowana niemalejąco tablica A typu array[1..N] of integer i x typu integer. Znajdź miejsce pierwszego wystąpienia x (lub 0 gdy nie ma żadnego x)

Rozwiązanie 1

Pytanko 1

Zadanie 2 (Ostatnie wystąpienie x)

Dana jest posortowana niemalejąco tablica A typu array[1..N] of integer i x typu integer. Znajdź miejsce ostatniego wystąpienia x (lub 0 gdy nie ma żadnego x)

Rozwiązanie 1

Pytanko 1

Zadanie 3 (Liczba wystąpień x)

Dana jest posortowana niemalejąco tablica A typu array[1..N] of integer i x typu integer. Wyznacz liczbę wystąpień x w tablicy A.

Wskazówka 1

Rozwiązanie 1

Zadanie 4 (Wartość równa indeksowi)

Dana jest posortowana rosnąco tablica A typu array[1..N] of integer. Sprawdź czy występuje w niej element o wartości równej swojemu indeksowi. Jeśli tak to wyznacz ten indeks, jeśli nie to funkcja ma dać wartość 0.

Wskazówka 1

Rozwiązanie 1

Zadanie 5 (Maksimum w ciągu bitonicznym)

Dana jest tablica A typu array[1..N] of integer, w której wartości ułożone są w ciąg bitoniczny (czyli istnieje 1 ≤ i ≤ N, takie że dla wszystkich k, takich że 1 ≤ k < i zachodzi A[k] < A[k+1] a dla wszystkich k, takich że i ≤ k < N zachodzi A[k] > A[k+1]). Znajdź maksimum w tym ciągu.

Wskazówka 1

Rozwiązanie 1

Zadanie 6 (Pierwiastek z x)

Napisz program obliczający sufit z pierwiastka z x, dla xεN, x > 0 (oczywiście bez operacji pierwiastek).

Wskazówka 1

Rozwiązanie 1

Wskazówka 2

Rozwiązanie 2

Inna wersja zadania

A jak znaleźć podłogę z pierwiastka z x ?

Wskazówka 3

Rozwiązanie 3

Zadanie 7 (BinPower)

Dla zadanych x,n > 0 wyznacz xn (oczywiscie bez exp i ln).

Wskazówka 1

Rozwiązanie 1

Zadanie 8 (Najdłuższy podciąg niemalejący)

Dana jest tablica A typu array[1..N] of integer, N > 1. Należy obliczyć długość najdłuższego podciągu niemalejącego w A.

Wskazówka 1

Rozwiązanie 1

Pytanko 1