I_R_W14_M25_Java Szukanie jednoczesne min‑max
Zastosowane iteracji do równoczesnego wyszukiwania w zbiorze największej i najmniejszej wartości.
Metoda iteracyjna polega na przeglądaniu elementów zbioru krok po kroku z wykorzystaniem pętli. W algorytmie jednoczesnego znajdowania minimum i maksimum celem jest takie zorganizowanie iteracji, aby w jednym przebiegu danych określić zarówno najmniejszą, jak i największą wartość.
Na początku algorytmu przyjmujemy, że pierwszy element tablicy jest jednocześnie minimum i maksimum. Następnie, w kolejnych krokach, każdy następny element jest porównywany z aktualnymi wartościami minimum i maksimum. Jeśli rozpatrywany element jest mniejszy od aktualnego minimum, to minimum zostaje zaktualizowane. Jeżeli natomiast jest większy od aktualnego maksimum, to maksimum zostaje zaktualizowane.
W bardziej efektywnej wersji iteracyjnej elementy są porównywane parami. Najpierw porównuje się dwa sąsiednie elementy, aby ustalić, który z nich jest mniejszy, a który większy. Następnie mniejszy z pary porównywany jest tylko z aktualnym minimum, a większy tylko z aktualnym maksimum. Takie podejście pozwala zmniejszyć liczbę porównań i zwiększyć wydajność algorytmu.
Metoda iteracyjna jest łatwa do implementacji, wydajna czasowo i nie wymaga dodatkowej pamięci, dlatego jest najczęściej stosowanym sposobem realizacji algorytmu jednoczesnego wyszukiwania minimum i maksimum w praktycznych programach.
Słownik
(z łac. iteratio) powtarzanie w pętli tych samych instrukcji aż do spełnienia pewnego warunku
metoda polegająca na podzieleniu problemu na mniejsze, prostsze do rozwiązania podproblemy; po całkowitym rozbiciu problemu oraz rozwiązaniu podproblemów, łączymy je z powrotem w całość i rozwiązujemy cały problem
technika programowania polegająca na odwoływaniu się procedur lub funkcji do samych siebie, aż do momentu spełnienia warunku podstawowego
najprostsze, bezpośrednie rozwiązanie danego problemu, pozbawione jakichkolwiek usprawnień i optymalizacji, przez co zazwyczaj jest to rozwiązanie nieoptymalne; przykładami mogą być algorytmy, które sprawdzają wszystkie możliwe rozwiązania (podczas gdy wystarczyłoby sprawdzenie tylko części), przeszukują całe zbiory danych (podczas gdy wystarczyłoby tylko częściowe przeszukiwanie) itp.
czas niezbędny do rozwiązania określonego problemu, podawany zazwyczaj w liczbach operacji dominujących; złożoność czasowa zależy od ilości danych wejściowych