Metoda poszukiwań w tablicach posortowanych, która polega na podzieleniu tablicy na kilka bloków i wyszukaniu liniowym tylko w tym bloku, w którym docelowy element może się znajdować, w języku angielskim nosi nazwę
Metoda poszukiwań w tablicach posortowanych, która polega na podzieleniu tablicy na kilka bloków i wyszukaniu liniowym tylko w tym bloku, w którym docelowy element może się znajdować, w języku angielskim nosi nazwę
Wyjaśnienie i uzasadnienie dydaktyczne
Wyjaśnienie
Metoda opisana w pytaniu to Jump Search, czyli algorytm wyszukiwania w posortowanych tablicach. Działa w następujący sposób:
Podział na bloki:
- Tablica jest podzielona na bloki o tej samej długości (zazwyczaj pierwiastek kwadratowy z długości tablicy, czyli √n).
Przeskakiwanie między blokami:
- Algorytm sprawdza elementy na końcach kolejnych bloków, aby znaleźć blok, w którym może znajdować się poszukiwany element.
Wyszukiwanie liniowe w bloku:
- Po zidentyfikowaniu bloku, w którym może znajdować się szukany element, algorytm przechodzi do liniowego przeszukiwania tylko w obrębie tego bloku.
Złożoność czasowa:
- W najgorszym przypadku złożoność czasowa wynosi O(sqrt{n}) , co czyni Jump Search wydajniejszym od liniowego przeszukiwania w przypadku dużych, posortowanych tablic.
Poprawna odpowiedź
D. Jump search.
Wyjaśnienie innych metod wyszukiwania
Exponential Search
- Opis: Wyszukiwanie wykładnicze jest używane do znajdowania elementów w posortowanych tablicach. Najpierw algorytm sprawdza elementy w wykładniczo rosnących pozycjach (1, 2, 4, 8, ...), aż znajdzie zakres, w którym może być poszukiwany element. Następnie w tym zakresie stosuje Binary Search.
- Złożoność czasowa: ( O(log n) .
- Zastosowanie: Przydatne dla posortowanych tablic o dużych rozmiarach, zwłaszcza gdy rozmiar tablicy nie jest znany z góry.
Ternary Search
- Opis: Wyszukiwanie trójdzielne dzieli tablicę na trzy części (zamiast dwóch, jak w wyszukiwaniu binarnym). Algorytm porównuje wartość z dwoma punktami podziału i wybiera jedną z trzech części, w której może znajdować się element, a następnie kontynuuje wyszukiwanie w tej części.
- Złożoność czasowa: O(log_3 n) .
- Zastosowanie: Stosowane głównie w przypadkach, gdy trzeba znaleźć maksimum lub minimum w funkcjach unimodalnych.
Binary Search
- Opis: Wyszukiwanie binarne dzieli posortowaną tablicę na dwie części. Algorytm porównuje szukany element ze środkowym elementem tablicy. Jeśli szukany element jest mniejszy, wyszukiwanie kontynuuje się w lewej połowie, w przeciwnym razie w prawej.
- Złożoność czasowa: O(log n).
- Zastosowanie: Podstawowa i bardzo wydajna metoda wyszukiwania w posortowanych tablicach.
Jump Search
- Opis: Opisany w poprzednim pytaniu. Działa przez podział tablicy na bloki, przeskakiwanie między blokami i liniowe wyszukiwanie w odpowiednim bloku.
- Złożoność czasowa: O(sqrt{n}).
- Zastosowanie: Skuteczny dla dużych, posortowanych tablic, jeśli dostęp do elementów tablicy nie jest zbyt kosztowny.
Podsumowanie
Każda z wymienionych metod jest stosowana w specyficznych sytuacjach:
- Exponential Search: Dla dużych, nieznanych rozmiarów tablic.
- Ternary Search: Gdy potrzebne jest przeszukiwanie trójdzielne.
- Binary Search: Najbardziej ogólna metoda dla posortowanych tablic.
- Jump Search: Przydatny, gdy dostęp do tablicy jest szybki, a tablica jest bardzo duża.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Wyszukiwanie binarne (Binary Search)Algorytm wyszukiwania w posortowanej tablicy o złożoności O(log n), porównujący szukaną wartość ze środkowym elementem i odrzucający połowę zbioru.
- Wyszukiwanie liniowe i z wartownikiem (Linear Search)Podstawowy algorytm przeszukiwania tablicy sprawdzający elementy kolejno od początku do końca o złożoności O(n), nie wymagający posortowania danych.
- Złożoność obliczeniowa (Big O Notation)Formalna miara efektywności algorytmu określająca zapotrzebowanie na czas procesora lub pamięć w funkcji rozmiaru danych wejściowych (n).
Podobne pytania z działu „Algorytmy sortowania i wyszukiwania”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 23 pytań z tego działu.
- #93
Aby zaprojektować zestaw danych do zainicjowania algorytmu sortowania bąbelkowego tablicy, należy zastosować przynajmniej typy:
- #129
Który z wymienionych algorytmów działających na tablicy jednowymiarowej ma złożoność obliczeniową O(n2)?
- #143
Strategia budowania algorytmu poprzez podział na dwa lub więcej mniejszych podproblemów tak długo, aż fragmentu staną się proste do bezpośredniego rozwiązania jest metodą:
- #144
Z tabeli przedstawiającej złożoność obliczeniową algorytmów sortowania na dowolnym, dużym, zbiorze wejściowym (ponad 100 elementów) wynika, że najszybszą metodą jest algorytm sortowania:
- #156
Wskaż niestabilny algorytm sortowania