Porównując dwa przedstawione fragmenty kodu, które realizują to samo zadanie (obliczenie sumy liczb od 1 do n), wskaż, które stwierdzenie jest prawdziwe z punktu widzenia optymalizacji kodu.
Porównując dwa przedstawione fragmenty kodu, które realizują to samo zadanie (obliczenie sumy liczb od 1 do n), wskaż, które stwierdzenie jest prawdziwe z punktu widzenia optymalizacji kodu.
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: B
Uzasadnienie i szersze wyjaśnienie:
Optymalizacja kodu często polega na znalezieniu bardziej wydajnego algorytmu.
- Fragment A używa pętli, co oznacza, że liczba operacji (dodawań) rośnie liniowo wraz ze wzrostem wartości
n. Dlan=1000wykona się 1000 operacji. Mówimy, że ma złożoność czasową O(n). - Fragment B używa wzoru matematycznego na sumę ciągu arytmetycznego. Niezależnie od tego, czy
nwynosi 10, czy 10 milionów, komputer zawsze wykonuje tę samą, stałą liczbę operacji (mnożenie, dodawanie, dzielenie). Mówimy, że ma złożoność czasową O(1). Z tego powodu Fragment B jest znacznie bardziej wydajny i optymalny, zwłaszcza dla dużych wartościn.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A: Czytelność nie jest równoznaczna z optymalizacją wydajności. W tym przypadku pętla jest wolniejsza.
- C: Wydajność obu fragmentów jest drastycznie różna, zwłaszcza dla dużych
n. - D: Oba fragmenty zużywają podobną, minimalną ilość pamięci, więc nie jest to czynnik różnicujący w tym przypadku.
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
- Pojęcie i Cechy AlgorytmuUporządkowany, skończony i jednoznaczny ciąg instrukcji i kroków postępowania prowadzący do rozwiązania określonego problemu obliczeniowego dla poprawnych danych wejściowych.
- 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ą.
- 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 „Architektura i cykl zycia android”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 21 pytań z tego działu.
- #23
Który plik konfiguracyjny w aplikacjach Android zawiera deklaracje aktywności, uprawnień i usług?
- #26
Która metoda w systemie Android służy do obsługi kliknięcia przycisku?
- #102
Przedstawiony fragment kodu w języku Java wypełnia tablicę wartościami:
- #119
Przedstawiony fragment kodu z Android Studio implementuje metodę nasłuchującą do obsługi zdarzenia:
- #141
Przedstawiony fragment programu w języku C# generuje hasło. Wskaż zdanie PRAWDZIWE określające własność tego hasła: