ALX - Kurs Python - Super Team

Kurs Python od Podstaw

Nie jesteś zalogowany na forum.

Ogłoszenie

Enter your announcement here.

#1 2022-01-23 22:30:01

Mikolaj_Jaczynski
Moderator
Dołączył: 2022-01-23
Liczba postów: 5
WindowsChrome 97.0.4692.99

[23.01][Zad 12] Zbuduj posortowany histogram wystąpień danych

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

#2 2022-01-24 23:56:53

Mikolaj_Jaczynski
Moderator
Dołączył: 2022-01-23
Liczba postów: 5
WindowsChrome 97.0.4692.99

Odp: [23.01][Zad 12] Zbuduj posortowany histogram wystąpień danych

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

Użytkowników czytających ten temat: 0, gości: 1
[Bot] ClaudeBot

Stopka

Forum oparte na FluxBB 1.5.7

Darmowe Forum