• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sortowanie bąbelkowe wyrazów z tablicy.

Object Storage Arubacloud
0 głosów
706 wizyt
pytanie zadane 23 lutego 2019 w Python przez bednar98 Początkujący (440 p.)

Mam problem z tam zadaniem, podpunkt a mam zrobiony ale potrafię do końca zrobić podpunktu b. Zacząłem to robić sortowaniem bąbelkowym i sortowanie miało to na celu porównywanie liter w dwóch wyrazach poprzez odwołanie się do ascii dla dużych liter.

['akwarium', 'zamek', 'kret', 'czeladnik', 'substytut', 'butonierka', 'malarz', 'Mimoza', 'metamoRfoza', 'Kronika', 'miozyna', 'figlarna'];
['holewka', 'alabaster', 'dramat', 'grupa', 'nierealny', 'nacja', 'ewolucja', 'orangutan' ,'Drobiazg', 'prawomocny']
a. połącz obie listy w jedną listę oraz spraw aby wszystkie wyrazy były pisane wielkimi lub małymi literami.
b. posortuj nowo utworzoną listę w kolejności alfabetycznej. Uwaga: nie wolno używać wbudowanej funkcji sorted(), LIST.sort() czy innej podobnej. Funkcja sortująca musi być zaimplementowana.

Kod:

q=['akwarium', 'zamek', 'kret', 'czeladnik', 'substytut', 'butonierka', 'malarz', 'Mimoza', 'metamoRfoza', 'Kronika', 'miozyna', 'figlarna']
w=['holewka', 'alabaster', 'dramat', 'grupa', 'nierealny', 'nacja', 'ewolucja', 'orangutan' ,'Drobiazg', 'prawomocny']

q.extend(w)
lista=[]

for i in range(0,len(q)):
    lista.append(q[i].upper())
print(q,"\n",lista)
print(len(lista)-1)

j,lenght=0,0

for x in range(0,len(lista)-1):
    print(lista[x],lista[x+1])
    if len(lista[x])>=len(lista[x+1]):
        length=len(lista[x+1])-1
        for j in range(0,lenght):
            if ord(lista[x][j])>ord(lista[x+1][j]):
                print(lista[x][j])
                temp=lista[x]
                lista[x]=lista[x+1]
                lista[x+1]=temp
    else:
        length=len(lista[x])-1
        for j in range(0,lenght):
            if ord(lista[x][j])>ord(lista[x+1][j]):
                print(lista[x][j])
                temp=lista[x]
                lista[x]=lista[x+1]
                lista[x+1]=temp
print(lista)

 

komentarz 23 lutego 2019 przez adrian17 Ekspert (344,860 p.)

Dobra, zacznijmy od podstaw... stringi można porównywać przez >, <. Nie musisz ręcznie iterować po znakach i porównywać przez ord() etc. Nic w treści zadania nie zakazuje:

if words[x] > words[x+1]:

Więc proponuję żebyś z tą wiedzą napisał to od nowa :)

komentarz 3 marca 2019 przez bednar98 Początkujący (440 p.)
Dzięki bardzo!!!

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 184 wizyt
pytanie zadane 8 stycznia 2023 w C i C++ przez Zuzan Początkujący (390 p.)
0 głosów
1 odpowiedź 539 wizyt
pytanie zadane 24 października 2021 w C i C++ przez pita Nowicjusz (180 p.)
0 głosów
1 odpowiedź 798 wizyt
pytanie zadane 2 lutego 2021 w C i C++ przez Kamirru9 Początkujący (300 p.)

92,568 zapytań

141,420 odpowiedzi

319,624 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...