W którym przypadku kolekcja typu lista będzie bardziej efektywna niż tablica?
W którym przypadku kolekcja typu lista będzie bardziej efektywna niż tablica?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
Listy (w szczególności listy łączone, ang. linked lists) są strukturami danych, które doskonale sprawdzają się w sytuacjach, gdy liczba elementów często i dynamicznie się zmienia. Dzieje się tak, ponieważ dodawanie lub usuwanie elementu z listy (zwłaszcza na początku lub w środku) jest operacją bardzo szybką (o stałej złożoności czasowej, O(1)), wymagającą jedynie zmiany kilku wskaźników. W przypadku tablicy taka operacja wymagałaby przesunięcia wszystkich kolejnych elementów, co jest czasochłonne (złożoność O(n)).
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A. Dostęp do elementów po indeksie jest znacznie szybszy w tablicach.
- B i D. Jeśli rozmiar jest stały i znany z góry, tablica jest zazwyczaj lepszym i bardziej wydajnym wyborem.
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
- Lista powiązana (Linked List)Dynamiczna struktura danych złożona z węzłów (Node), gdzie każdy węzeł zawiera przechowywaną wartość oraz wskaźnik na kolejny element.
- Wskaźnik i Zarządzanie Pamięcią (Pointers)Zmienna przechowująca adres innej komórki pamięci RAM zamiast bezpośredniej wartości, operująca za pomocą operatora pobrania adresu (&) i dereferencji (*).
- Zmienne i Stałe w programowaniuNazwane obszary pamięci operacyjnej przechowujące dane robocze programu; zmienne pozwalają na modyfikację wartości podczas działania, podczas gdy stałe mają wartość niezmienną.
Podobne pytania z działu „Typy generyczne i kolekcje”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 6 pytań z tego działu.
- #494
Do czego służy iterator w kolekcjach?
- #571
Jak należy dokończyć kod deklarujący obiekt lista zapisany w języku C#? List
<String>lista = ??? - #595
Na podstawie przedstawionej dokumentacji do języka Java wskaż prawidłową deklarację zmiennej typu Map.
- #655
Jaki jest główny cel i korzyść z zastosowania szablonu funkcji (
template), jak w powyższym kodzie C++? - #808
W języku Java, która kolekcja nie pozwala na przechowywanie duplikatów?