Font size
WorksheetsPrzeszukiwanie - złożoność - sortowanie
Total questions: 30
Worksheet time: 21mins
Co opisuje czasowa złożoność obliczeniowa algorytmu?
Liczbę linii kodu programu
Liczbę operacji dominujących w zależności od wielkości danych
Ilość pamięci RAM, jaką zajmuje program
Liczbę błędów logicznych w algorytmie
Operacjami dominującymi w algorytmie wyszukiwania są zwykle:
Mnożenie liczb
Porównania elementów
Instrukcje wejścia/wyjścia
Losowanie liczb
Co składa się na złożoność obliczeniową algorytmu?
Tylko czas wykonania algorytmu w sekundach
Złożoność czasowa (liczba operacji dominujących)
Złożoność pamięciowa (zapotrzebowanie na pamięć)
Złożoność sprzętowa (szybkość procesora)
Złożoność wyszukiwania binarnego w uporządkowanej tablicy to:
O(n³)
O(log n)
O(n² / 2)
O(1)
Które z poniższych zdań dotyczących algorytmu przeszukiwania liniowego są prawdziwe?
Wymaga, aby zbiór danych był uporządkowany
Jego pesymistyczna złożoność wynosi n (dla n elementów)
Można go stosować zarówno do zbiorów uporządkowanych, jak i nieuporządkowanych
Jest szybszy od przeszukiwania binarnego dla bardzo dużych zbiorów danych
Na czym polega sortowanie bąbelkowe (przez prostą zamianę)?
Na wyszukiwaniu najmniejszego elementu i wstawianiu go na początek tablicy
Na dzieleniu zbioru na mniejsze podzbiory i ich niezależnym sortowaniu
Na porównywaniu sąsiadujących elementów i zamianie ich miejscami, jeśli są w złej kolejności
Na wstawianiu kolejnych elementów w odpowiednie miejsca już posortowanego podciągu
Które z poniższych metod zaliczamy do metod sortowania prostego?
Sortowanie przez wybieranie (Selection Sort)
Sortowanie przez scalanie (Merge Sort)
Sortowanie bąbelkowe (Bubble Sort)
Sortowanie przez wstawianie (Insertion Sort)
Jaka jest typowa złożoność czasowa algorytmów sortowania prostego (bąbelkowego, przez wybieranie, przez wstawianie)?
O(n)
O(n log n)
O(n2)
O(log n)
W algorytmie sortowania przez wstawianie (Insertion Sort), aby usprawnić działanie i uniknąć każdorazowego sprawdzania wyjścia poza zakres tablicy, stosuje się:
Wartownika (np. na pozycji A[0])
Zmienną globalną
Rekurencję
Wskaźniki.
Porównując sortowanie bąbelkowe z sortowaniem przez wybieranie, która z poniższych obserwacji jest prawdziwa?
Sortowanie bąbelkowe wykonuje zazwyczaj mniej zamian elementów niż sortowanie przez wybieranie
Sortowanie przez wybieranie jest nieco sprawniejsze, ponieważ zamiana elementów następuje w pętli zewnętrznej (rzadziej)
Sortowanie bąbelkowe ma złożoność O(n), a przez wybieranie O(n2)
Obie metody nie wymagają operacji porównania elementów
Co określa notacja dużego O (np. O(n))?
Dokładny czas wykonania programu w sekundach.
Rząd wielkości liczby wykonywanych operacji dominujących w zależności od rozmiaru danych
Ilość pamięci RAM zużytej przez zmienne lokalne.
Maksymalną wielkość tablicy, jaką może obsłużyć komputer.
Złożoność O(log n) (logarytmiczna) jest charakterystyczna dla algorytmu:
Przeszukiwania liniowego.
Sortowania bąbelkowego
Przeszukiwania binarnego
Sprawdzania, czy w tablicy powtarza się element (metodą "każdy z każdym").
Pamięciowa złożoność obliczeniowa algorytmu wyszukującego liczbę w zbiorze n-elementowym (wykorzystującego pojedynczą tablicę) wynosi:
O(1)
O(n)
O(n2)
O(log n)
Które z poniższych zdań dotyczących złożoności są prawdziwe?
Złożoność pesymistyczna określa liczbę operacji w najgorszym możliwym przypadku
Stała złożoność O(1) oznacza, że liczba operacji nie zależy od rozmiaru danych
Złożoność wykładnicza (np. O(2n)) jest bardzo pożądana i oznacza szybki algorytm dla dużych danych
Przy szacowaniu złożoności w notacji dużego O pomijamy stałe współczynniki (np. n/2 zapisujemy jako rząd wielkości n)
Ile bajtów pamięci zajmuje zazwyczaj typ prosty int
1 bajt
2 bajty
4 bajty
8 bajtów
Jaki warunek musi być spełniony, aby można było zastosować algorytm przeszukiwania binarnego?
Tablica nie może zawierać liczb ujemnych
Zbiór danych musi być uporządkowany (posortowany)
Liczba elementów w tablicy musi być parzysta
Zbiór musi być przechowywany na liście, a nie w tablicy
W jaki sposób w języku C++ można przekazać parametr do funkcji, aby funkcja pracowała na oryginale zmiennej (a nie na kopii)?
Przez wartość (standardowe przekazanie)
Przez referencję (używając operatora &)
Przez wskaźnik (przekazując adres zmiennej)
Używając słowa kluczowego const
Ile wynosi maksymalna liczba porównań w algorytmie przeszukiwania liniowego dla zbioru n-elementowego (przypadek pesymistyczny)?
n/2
log n
n
n2
Jaki jest algorytm optymalny (o najmniejszej liczbie porównań) przy jednoczesnym znajdowaniu minimum i maksimum w zbiorze?
Sortowanie tablicy, a następnie wzięcie pierwszego i ostatniego elementu.
Przeszukanie liniowe dwa razy: raz szukając minimum, drugi raz maksimum.
Porównywanie elementów tablicy parami (dziel i zwyciężaj), a następnie szukanie min wśród mniejszych i max wśród większych.
Losowanie elementów i sprawdzanie, czy są minimum lub maksimum.
Jakim wzorem w C++ można wylosować liczbę całkowitą z przedziału [a,b]?
rand() % b + a
rand() % (b - a + 1) + a
rand() % a + b
rand(a, b)
Z jakiego zakresu liczb będzie losowała funkcja Losuj(), przedstawiona w kodzie
0-100
2-102
2-100
0-102
W której linii przedstawionego kodu funkcja SzukajLin(), może zakończyć swoje działanie
tylko w 25
tylko w 26
w 25 i w 26
w 25 lub w 26
Co może zwrócić funkcja przedstawiona w kodzie obok?
dowolną liczbę naturalną
ciąg znaków
true lub false
nic nie zwraca
Proszę zaznaczyć poprawne wywołanie funkcji Obliczenia()
cout << Obliczenia();
x=Obliczenia();
Obliczenia();
x=Obliczenia()+y;
Który fragment kodu zapewnia zamianę wartości pomiędzy zmiennymi a i b
a=b;
b=a;
swap(a, b);
temp=a;
a=b;
b=temp;
a=b=c;
Która funkcja podaje rozmiar w bajtach jaki zajmuje zmienna x w pamięci operacyjnej?
byte(x)
length(x)
size(x)
sizeof(x)
Ile razy wykona się pętla przedstawiona w kodzie
5
4
6
ani razu
Która pętla nie wykona się ani razu
Która pętla będzie pętlą nieskończoną?
Czy na ekranie zobaczymy napis "OK", według załączonego kodu
Tak
Nie
