Przejdź do treści głównej
INF.04Pytanie #551 z 856algorytmy-sortowania-i-wyszukiwania

Przedstawiony kod szuka określonej wartości w tablicy. Aby zoptymalizować kod pod względem iteracji pętli można wstawić

csharp
1. int[] tab = new int[1000];
2. int i, szukana = 20, indeksSzukanej = -1;
3.
4. Random rnd = new Random();
5. for (i = 0; i < tab.Length; i++) {
6.     tab[i] = rnd.Next(0, 255);
7. }
8.
9. for (i = 0; i < tab.Length; i++) {
10.    if (tab[i] == szukana)
11.        indeksSzukanej = i;
12. }
Opcje odpowiedzi:
A
i = 0; while(tab[i] != szukana) i++; zamiast linii 9, 10 oraz usunąć linię 12
Prawidłowa
B
i++; po linii 11
C
i = 0; while(i < tab.Length) zamiast linii 5
D
if (tab[i] != szukana) zamieniając warunek w linii 10
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź to A. Oryginalna pętla for (linie 9-12) zawsze wykonuje 1000 iteracji, nawet jeśli szukany element jest na początku tablicy (jest to nieoptymalne). Zastosowanie pętli while(tab[i] != szukana) przerywa działanie natychmiast po znalezieniu elementu, co zmniejsza średnią liczbę iteracji. (Uwaga: W praktyce taki kod wymagałby zabezpieczenia przed wyjściem poza zakres tablicy, np. poprzez wartownika, ale w kontekście pytań egzaminacyjnych chodzi o ideę przerwania pętli po znalezieniu wyniku).

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.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

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.