Tavs šīs stundas izaicinājums: Tu jau zini, ka efektīvai meklēšanai dati ir jāsakārto. Šodien Tu pats uzbūvēsi "kārtošanas dzinēju". Mēs pētīsim klasisko "burbuļkārtošanas" (Bubble Sort) algoritmu un mācīsimies manipulēt ar saraksta elementu pozīcijām, lai izveidotu funkcionējošu rezultātu (Highscores) tabulu.
SR 2.4.19. (Gatavi algoritmi tipveida uzdevumu risināšanai - kārtošana)a, b = b, a.cd Tema7_Algoritmini kartosana.py; code kartosana.pySāksim ar pašu pamatu — iemācīsimies apmainīt saraksta elementus vietām.
kartosana.py izveido sarakstu: rezultati = [90, 45].a, b = b, a), lai samainītu nulto indeksu ar pirmo.
rezultati = [90, 45]
print(f"Pirms maiņas: {rezultati}")
# Apmainām vietām
rezultati[0], rezultati[1] = rezultati[1], rezultati[0]
print(f"Pēc maiņas: {rezultati}")
Uzrakstīsim loģiku, kas iziet cauri visam sarakstam un aizstumj vislielāko skaitli līdz pašām beigām.
dati = [42, 15, 8, 99, 23].for ciklu un range(len(dati) - 1).if nosacījumu: ja elements ir lielāks par savu labo kaimiņu, samaini tos vietām.
dati = [42, 15, 8, 99, 23]
print(f"Sākotnējie dati: {dati}")
# Viens pilns gājiens cauri sarakstam
for i in range(len(dati) - 1):
if dati[i] > dati[i + 1]:
dati[i], dati[i + 1] = dati[i + 1], dati[i]
print(f"Pēc viena gājiena: {dati}")
Pievienosim ārējo ciklu, lai atkārtotu kārtošanu pilnībā.
bubble_sort(saraksts).for j in range(len(saraksts)):.print komandu pēc iekšējā cikla, lai vizualizētu katru gājienu.
def bubble_sort(saraksts):
elementu_skaits = len(saraksts)
for j in range(elementu_skaits):
for i in range(elementu_skaits - 1):
if saraksts[i] > saraksts[i + 1]:
saraksts[i], saraksts[i + 1] = saraksts[i + 1], saraksts[i]
print(f"Gājiens {j+1}: {saraksts}")
return saraksts
speletaju_punkti = [64, 34, 25, 12, 22, 11, 90]
print("--- KĀRTOŠANAS PROCESS ---")
sakartots = bubble_sort(speletaju_punkti)