Kurs Python od Podstaw
Nie jesteś zalogowany na forum.
Ktoś wpadł na pomysł jak posortować dwie listy względem jednej? Moja metoda nie działa na wszystkich przypadkach, ale próbowałem coś w ten deseń:
i = 1
while i < len(wartosci):
if wystapienia[i] > wystapienia[i-1]:
tmp = wystapienia[i]
del wystapienia[i]
wystapienia.insert(i-1, tmp)
tmp2 = wartosci[i]
del wartosci[i]
wartosci.insert(i-1, tmp2)
else:
i += 1
jednak wtedy kiedy algorytm wpadnie na liczbę większą to przesuwa ją tylko o jeden w górę i nie sprawdza czy jest większa od tej następnej wcześniejszej. Algorytm trzyma powiązanie elementów w dwóch listach ale sortowanie nie jest doskonałe. Wydaje mi się, że brakuje jakiegoś dodatkowego sprawdzenia.
Ostatnio edytowany przez Mikolaj_Jaczynski (2022-01-23 22:30:55)
Offline
chyba mam, jakby ktoś chciał przetestować to poniżej, mi się wydaje, że działa w każdym przypadku. Sama część sortująca dwie listy - wartości i wystąpienia.
i = 1
while i < len(wartosci):
if i == 0:
i += 1
elif wystapienia[i] > wystapienia[i - 1]:
tmp = wystapienia[i]
del wystapienia[i]
wystapienia.insert(i - 1, tmp)
tmp2 = wartosci[i]
del wartosci[i]
wartosci.insert(i - 1, tmp2)
i -= 1
else:
i += 1
Offline