[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Równoczesne wyszukiwanie minimum i maksimum w ciagu \(\displaystyle{ n}\) elementowym mozna zrealizowac
ustawiajac elementy ciagu w pary, a nastepnie wybierajac element najmniejszy z mniejszych
elementów par i element najwiekszy - z wiekszych elementów par. Jezeli dodatkowo \(\displaystyle{ n}\) jest nieparzyste,
to nalezy porównac otrzymane elementy z ostatnim, który nie ma pary.
a) Jaki jest koszt tego algorytmu, jesli ciag ma \(\displaystyle{ 6}\) elementów?
b) Jaki jest koszt tego algorytmu, jesli ciag ma \(\displaystyle{ 9}\) elementów?
c) Jaki jest koszt w przypadku, gdy ciag ma \(\displaystyle{ n}\) elementów oraz \(\displaystyle{ n}\) jest liczba parzysta?
d) Czy koszt tego algorytmu jest liniowy?
ustawiajac elementy ciagu w pary, a nastepnie wybierajac element najmniejszy z mniejszych
elementów par i element najwiekszy - z wiekszych elementów par. Jezeli dodatkowo \(\displaystyle{ n}\) jest nieparzyste,
to nalezy porównac otrzymane elementy z ostatnim, który nie ma pary.
a) Jaki jest koszt tego algorytmu, jesli ciag ma \(\displaystyle{ 6}\) elementów?
b) Jaki jest koszt tego algorytmu, jesli ciag ma \(\displaystyle{ 9}\) elementów?
c) Jaki jest koszt w przypadku, gdy ciag ma \(\displaystyle{ n}\) elementów oraz \(\displaystyle{ n}\) jest liczba parzysta?
d) Czy koszt tego algorytmu jest liniowy?
Ostatnio zmieniony 25 lut 2015, o 07:29 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 1592
- Rejestracja: 16 maja 2013, o 17:56
- Płeć: Mężczyzna
- Lokalizacja: Trójmiasto
- Podziękował: 11 razy
- Pomógł: 246 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Nie wiadomo o jaki koszt (czy formalniej mówiąc o jaką złożoność chodzi). Jeśli o czasową to jest \(\displaystyle{ O(\log n)}\)
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Myślę , że złożoność = ilość porównań w czasie wykonywania.
- Vardamir
- Użytkownik
- Posty: 1913
- Rejestracja: 3 wrz 2010, o 22:52
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 410 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Jak Ci to wyszło? Dla sześciu elementów, ten algorytm wykona dziewięć porównań. Ogólny przypadek to \(\displaystyle{ \left\lfloor \frac{n}{2} \right\rfloor + 2 \cdot \left\lfloor \frac{n}{2} \right\rfloor + 2\cdot \left( n-2\cdot \left\lfloor \frac{n}{2} \right\rfloor \right)}\) porównań.Gouranga pisze:Jeśli o czasową to jest \(\displaystyle{ O(\log n)}\)
Kolejno - na ustawienie w parach, na wyszukanie minimum i na wyszukanie maksimum, na uwzględnienie dodatkowego elementu.
Zatem złożoność to \(\displaystyle{ O(n)}\)
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Jakim cudem jeżeli \(\displaystyle{ 6}\) elementów to \(\displaystyle{ 9}\) porównań .
Weźmy tablice \(\displaystyle{ [5\ 8\ 1\ 3\ 6\ 2]}\)
Układamy w pary : \(\displaystyle{ [5\ 8]\ [1\ 3]\ [6\ 2]}\) i porównujemy --> \(\displaystyle{ 3}\) porównania
Wychodzi nam znowu \(\displaystyle{ [5\ 1\ 2]\ [8\ 3\ 6]}\) i znowu w pary
Czyli \(\displaystyle{ [5\ 1]}\) zostaje \(\displaystyle{ 2}\) i \(\displaystyle{ [8\ 3]}\) zostaje \(\displaystyle{ 6}\) --> \(\displaystyle{ 2}\) porownania
Musimy porównać te elementy co zostały z tymi co wyszły : \(\displaystyle{ [1\ 2]}\) i \(\displaystyle{ [8\ 6]}\) --> \(\displaystyle{ 2}\) porównania
\(\displaystyle{ 3+2+2 = 7}\) porównań
Weźmy tablice \(\displaystyle{ [5\ 8\ 1\ 3\ 6\ 2]}\)
Układamy w pary : \(\displaystyle{ [5\ 8]\ [1\ 3]\ [6\ 2]}\) i porównujemy --> \(\displaystyle{ 3}\) porównania
Wychodzi nam znowu \(\displaystyle{ [5\ 1\ 2]\ [8\ 3\ 6]}\) i znowu w pary
Czyli \(\displaystyle{ [5\ 1]}\) zostaje \(\displaystyle{ 2}\) i \(\displaystyle{ [8\ 3]}\) zostaje \(\displaystyle{ 6}\) --> \(\displaystyle{ 2}\) porownania
Musimy porównać te elementy co zostały z tymi co wyszły : \(\displaystyle{ [1\ 2]}\) i \(\displaystyle{ [8\ 6]}\) --> \(\displaystyle{ 2}\) porównania
\(\displaystyle{ 3+2+2 = 7}\) porównań
Ostatnio zmieniony 25 lut 2015, o 19:08 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Brak LaTeX-a. Proszę zapoznaj się z instrukcją: http://matematyka.pl/latex.htm .
Powód: Brak LaTeX-a. Proszę zapoznaj się z instrukcją: http://matematyka.pl/latex.htm .
- Vardamir
- Użytkownik
- Posty: 1913
- Rejestracja: 3 wrz 2010, o 22:52
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 410 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Dlaczego znowu w pary, gdzie w twoim opisie algorytmu jest coś takiego napisane? W tym momencie, spośród elementów mniejszych szukasz najmniejszego, każdy porównując z aktualnym minimum. To samo dla największego.kirk1994 pisze:Wychodzi nam znowu [5 1 2] [8 3 6] i znowu w pary
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
No to pokaż , jak z 6 elementowego zbioru wychodzi 9 porównań.
- Vardamir
- Użytkownik
- Posty: 1913
- Rejestracja: 3 wrz 2010, o 22:52
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 410 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
\(\displaystyle{ [5\ 8\ 1\ 3\ 6\ 2]}\)
Ustawiamy je w pary mniejsza-większa. (trzy porównania)
\(\displaystyle{ [5\ 8\ 1\ 3\ 2\ 6]}\)
Nie jest sprecyzowane w poleceniu, jakie jest \(\displaystyle{ n}\). Przyjmuje, że dowolne całkowite.
Niech \(\displaystyle{ \min=-\infty}\) oraz \(\displaystyle{ \max=\infty}\).
Teraz \(\displaystyle{ \min}\) porównujemy z pozycjami nieparzystymi (trzy porównania), natomiast \(\displaystyle{ \max}\) z pozycjami parzystymi (trzy porównania).
Można na początku przyjąć za \(\displaystyle{ \min}\), \(\displaystyle{ \max}\) odpowiednio pierwszy i drugi element ciągu, wówczas odpadną dwa porównania. Jednak to zależy od tego jak realizujemy początkowy stan wyszukiwania najmniejszego/największego elementu
Ustawiamy je w pary mniejsza-większa. (trzy porównania)
\(\displaystyle{ [5\ 8\ 1\ 3\ 2\ 6]}\)
Nie jest sprecyzowane w poleceniu, jakie jest \(\displaystyle{ n}\). Przyjmuje, że dowolne całkowite.
Niech \(\displaystyle{ \min=-\infty}\) oraz \(\displaystyle{ \max=\infty}\).
Teraz \(\displaystyle{ \min}\) porównujemy z pozycjami nieparzystymi (trzy porównania), natomiast \(\displaystyle{ \max}\) z pozycjami parzystymi (trzy porównania).
Można na początku przyjąć za \(\displaystyle{ \min}\), \(\displaystyle{ \max}\) odpowiednio pierwszy i drugi element ciągu, wówczas odpadną dwa porównania. Jednak to zależy od tego jak realizujemy początkowy stan wyszukiwania najmniejszego/największego elementu
-
- Użytkownik
- Posty: 5974
- Rejestracja: 28 lut 2010, o 19:45
- Płeć: Mężczyzna
- Lokalizacja: Toruń
- Podziękował: 15 razy
- Pomógł: 1251 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Przecież to jest algorytm liniowy \(\displaystyle{ O(n)}\) i tyle. Dokładnie jakby policzyć to wychodzi \(\displaystyle{ \frac{3n}{2}}\)
- Vardamir
- Użytkownik
- Posty: 1913
- Rejestracja: 3 wrz 2010, o 22:52
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 410 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Oczywiście, że jest liniowy. Do tego zmierzamy.
Dokładnie to raczej nie. \(\displaystyle{ n=3}\) daje \(\displaystyle{ 4,5}\) porównania.bartek118 pisze:Dokładnie jakby policzyć to wychodzi \(\displaystyle{ \frac{3n}{2}}\)
-
- Użytkownik
- Posty: 5974
- Rejestracja: 28 lut 2010, o 19:45
- Płeć: Mężczyzna
- Lokalizacja: Toruń
- Podziękował: 15 razy
- Pomógł: 1251 razy
[Algorytmy] Wyszukiwanie minimum i maksimum w ciągu
Dla \(\displaystyle{ n}\) parzystychVardamir pisze:Oczywiście, że jest liniowy. Do tego zmierzamy.Dokładnie to raczej nie. \(\displaystyle{ n=3}\) daje \(\displaystyle{ 4,5}\) porównania.bartek118 pisze:Dokładnie jakby policzyć to wychodzi \(\displaystyle{ \frac{3n}{2}}\)