Ustaw liczby w kolejności rosnącej
50pn: Ustaw liczby w kolejności rosnącej
448
551
1234
19 gru 21:47
wredulus_pospolitus:
4 = 22
448 = 296
551 = (√5)102 > 2102
1234 = (4*3)34 = 268*334 > 268*234 = 2102
więc pozostaje Ci sprawdzić która jest większa: 551 czy też 1234 ... kombinuj
19 gru 21:51
ABC: 1) 448<548<551
2) 1234=[5*2,4}34=534*(2,4)34=534*[5,76]17>534*517=551
19 gru 21:53
Mariusz:
Ustawianie liczb w kolejności rosnącej
Ustaw−Liczby[LL]
Jeśli głowa [LL]!= ogon[LL] to wykonujesz
1. Wybór elementu rozdzielającego
Najszybszy dostęp masz do głowy lub ogona (czas stały)
Innych elementów musisz szukać (czas liniowy)
2. Rozdzielasz elementy oryginalnej listy do trzech podlist
Niech podlista L zawiera elementy o kluczach mniejszych od klucza elementu
rozdzielającego
Niech podlista E zawiera elementy o kluczach równych kluczowi elementu rozdzielającego
Niech podlista G zawiera elementy o kluczach większych od klucza elementu
rozdzielającego
Do dystrybucji elementów listy możesz użyć operacji na kolejce
pseudokod
Dopóki niepusta[LL] wykonuj
Zdejmij element y z początku listy
Jeżeli klucz[y]<klucz[p] to
Wstaw element y na koniec listy L
w przeciwnym przypadku jeśli klucz[y]=klucz[p] to
Wstaw element y na koniec listy E
w przeciwnym przypadku
Wstaw element y na koniec listy G
3. Wywołaj rekurencyjnie procedurę ustawiającą liczby dla podlist
o kluczach różnych niż klucz elementu rozdzielającego
Ustaw−Liczby[L]
Ustaw−Liczby[G]
4. Połącz podlisty L,E,G w jedną listę
Tutaj łączenie redukuje się do konkatenacji
Jeżeli mamy do dyspozycji wskaźnik na ogon to zarówno operacje na kolejce
jak i konkatenacja mogą być wykonane w stałym czasie O(1)
Dzięki temu że operacje na kolejce są wykonywane w stałym czasie O(1)
to etap rozdzielania listy jest wykonywany w czasie liniowym O(n)
Ten pomysł może się przydać szczególnie gdy będziesz miał więcej liczb do ustawiania
Z pomysłów na ustawianie liczb to jeszcze pomysł z drzewem BST
oraz ze scalaniem są godne uwagi
Tutaj przedstawiłem pomysł z podziałem
19 gru 22:24
Mariusz:
Oczywiście listy L,E,G przed etapem dystrybucji elementów są puste
19 gru 22:36
Mariusz:
Co do ustawiania liczb w tablicy to jakiś czas temu Benny wrzucił kod
20 gru 09:44