I_R_W14_M25_Java Szukanie jednoczesne min‑max
Algorytm jednoczesnego znajdowania minimum i maksimum
Metoda „Dziel i zwyciężaj” (ang. Divide and Conquer) to potężna technika projektowania algorytmów, która polega na rozbiciu złożonego problemu na mniejsze, łatwiejsze do rozwiązania podproblemy tego samego typu.
Proces ten składa się z trzech głównych kroków:
Dziel (Divide): Rozdzielamy problem na mniejsze części (zwykle na dwie połowy).
Zwyciężaj (Conquer): Rozwiązujemy te mniejsze problemy (często rekurencyjnie). Jeśli problem jest wystarczająco mały (przypadek bazowy), rozwiązujemy go bezpośrednio.
Połącz (Combine): Łączymy rozwiązania mniejszych części w jedno rozwiązanie problemu głównego.
W przypadku szukania minimum i maksimum, zamiast porównywać każdy element po kolei, dzielimy tablicę na pół, aż otrzymamy segmenty jedno- lub dwuelementowe.
Napisz program, który wykorzystując metodę bąbelkową, wyznaczy i przesunie na początek ciągu liczbowego (reprezentowanego w programie jako tablica) najmniejszy jego wyraz. Po wyznaczeniu i przesunięciu najmniejszego wyrazu na początek ciągu, wypisz go.
Specyfikacja problemu:
Dane:
ciag– ciąg liczb całkowitych zapisany w tablicy; tablica liczb całkowitychn– długość ciągu (rozmiar tablicy); liczba całkowita
Wynik:
najmniejszaLiczba– najmniejszy wyraz ciągu; liczba całkowita