0Pricing
Java Academy · Lekcja

Wyszukiwanie, minimum/maksimum i odwracanie

Zaimplementują Państwo wyszukiwanie liniowe, obliczą minimum i maksimum w jednym przebiegu oraz odwrócą tablice w miejscu lub przez skopiowanie.

Wyszukiwanie, minimum/maksimum i odwracanie to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 3 lekcji w sumie.

Wyszukiwanie liniowe

Wyszukiwanie liniowe sprawdza każdy element po kolei, aż znajdzie szukaną wartość.

  • Zwróć indeks po znalezieniu elementu
  • Jeśli elementu nie znaleziono, zwróć -1
  • Zatrzymaj wyszukiwanie wcześniej za pomocą break
public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    int t = 9;      // target value to search
    int idx = -1;   // will stay -1 if not found

    // Loop through each index of the array
    for (int i = 0; i < a.length; i = i + 1) {
      // Check if current element matches the target
      if (a[i] == t) {
        idx = i;   // store the index where found
        break;     // exit loop early (found the target)
      }
    }

    // Print result
    if (idx != -1) {
      System.out.println("Found " + t + " at index " + idx);
    } else {
      System.out.println(t + " not found in array");
    }
  }
}

findIndex()

Umieść wyszukiwanie w metodzie:

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    int t = 9;      // target value we are searching for
    int idx = -1;   // default index (-1 means "not found")

    // Loop through each index of the array
    for (int i = 0; i < a.length; i = i + 1) {
      // Check if current element matches the target
      if (a[i] == t) {
        idx = i;   // store the index where it was found
        break;     // stop searching (first match found)
      }
    }

    // Print result
    if (idx != -1) {
      System.out.println("Found " + t + " at index " + idx);
    } else {
      System.out.println(t + " not found in array");
    }
  }
}

Min/Max w jednym przebiegu

Oblicz min i max w jednym przebiegu:

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 2, 12, 15, 1};

    // Initialize min and max with the first element
    int min = a[0];
    int max = a[0];

    // Loop starts from the second element (index 1)
    for (int i = 1; i < a.length; i = i + 1) {
      // If current element is smaller than current min → update min
      if (a[i] < min) min = a[i];

      // If current element is larger than current max → update max
      if (a[i] > max) max = a[i];
    }

    // Print results
    System.out.println("Minimum value = " + min);
    System.out.println("Maximum value = " + max);
  }
}

Odwracanie w miejscu

Odwróć tablicę w miejscu, zamieniając elementy na końcach i przesuwając się do środka:

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    int i = 0;              // start pointer (left side)
    int j = a.length - 1;   // end pointer (right side)

    // Keep swapping until the two pointers meet
    while (i < j) {
      // Swap elements at positions i and j
      int tmp = a[i];
      a[i] = a[j];
      a[j] = tmp;

      // Move pointers toward the center
      i = i + 1;
      j = j - 1;
    }

    // Print the reversed array
    System.out.print("Reversed array: ");
    for (int k = 0; k < a.length; k++) {
      System.out.print(a[k] + " ");
    }
  }
}

Odwrócona kopia

Utwórz odwróconą kopię (oryginał pozostaje bez zmian):

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    // Create a new array b with the same length
    int[] b = new int[a.length];

    // Copy elements from a into b in reverse order
    for (int i = 0; i < a.length; i = i + 1) {
      // (a.length - 1 - i) gives the reversed index
      b[a.length - 1 - i] = a[i];
    }

    // Print original array
    System.out.print("Original array: ");
    for (int i = 0; i < a.length; i++) {
      System.out.print(a[i] + " ");
    }

    System.out.println(); // newline

    // Print reversed array
    System.out.print("Reversed array: ");
    for (int i = 0; i < b.length; i++) {
      System.out.print(b[i] + " ");
    }
  }
}

Demonstracja wyszukiwania, Min/Max i odwracania

Uruchom program: Zobacz wyniki wyszukiwania, wartości min/max oraz odwrócone tablice.

public class Main {
  static int findIndex(int[] a, int t) {
    for (int i = 0; i < a.length; i = i + 1) {
      if (a[i] == t) return i;
    }
    return -1;
  }

  static int min(int[] a) {
    int m = a[0];
    for (int i = 1; i < a.length; i = i + 1) {
      if (a[i] < m) m = a[i];
    }
    return m;
  }

  static int max(int[] a) {
    int m = a[0];
    for (int i = 1; i < a.length; i = i + 1) {
      if (a[i] > m) m = a[i];
    }
    return m;
  }

  static void reverseInPlace(int[] a) {
    int i = 0, j = a.length - 1;
    while (i < j) {
      int tmp = a[i];
      a[i] = a[j];
      a[j] = tmp;
      i = i + 1;
      j = j - 1;
    }
  }

  static int[] reversedCopy(int[] a) {
    int[] b = new int[a.length];
    for (int i = 0; i < a.length; i = i + 1) {
      b[a.length - 1 - i] = a[i];
    }
    return b;
  }

  static String join(int[] a) {
    String s = "";
    for (int i = 0; i < a.length; i = i + 1) {
      s = s + a[i] + (i + 1 < a.length ? " " : "");
    }
    return s;
  }

  public static void main(String[] args) {
    int[] a = {3, 1, 4, 1, 5};

    System.out.println("findIndex 4 -> " + findIndex(a, 4));
    System.out.println("findIndex 9 -> " + findIndex(a, 9));

    System.out.println("min = " + min(a));
    System.out.println("max = " + max(a));

    int[] b = reversedCopy(a);
    System.out.println("reversedCopy: " + join(b));

    reverseInPlace(a);
    System.out.println("reverseInPlace: " + join(a));
  }
}

Sprawdzenie wyszukiwania liniowego

Szybkie sprawdzenie: Który fragment kodu zwraca indeks wartości t w tablicy a albo -1?

Podsumowanie i następny krok

Podsumowanie: Zaimplementowali Państwo wyszukiwanie liniowe, znajdowanie min/max oraz dwa sposoby odwracania tablic.

Następny krok: Poznajmy wstawianie, usuwanie (według indeksu) i przesuwanie elementów.

Często zadawane pytania

Czy lekcja „Wyszukiwanie, minimum/maksimum i odwracanie” jest bezpłatna?

Tak — pełny tekst „Wyszukiwanie, minimum/maksimum i odwracanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Wyszukiwanie, minimum/maksimum i odwracanie”?

Zaimplementują Państwo wyszukiwanie liniowe, obliczą minimum i maksimum w jednym przebiegu oraz odwrócą tablice w miejscu lub przez skopiowanie. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Java Academy?

Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.

Ile czasu zajmuje lekcja „Wyszukiwanie, minimum/maksimum i odwracanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?

Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy tablic i iteracja
  2. Wyszukiwanie, minimum/maksimum i odwracanie
  3. Wstawianie, usuwanie po indeksie i przesuwanie
← Powrót do Java Academy