Összefuttatás (rendezettek uniója) – avagy a nagy koppanás története

Szóval, az úgy volt, hogy van még egy programozási tétel. Amit nem érdemes megtanulni. Legalábbis a mostani szintünkön, Pythonban dolgozva. Lássuk:

Egyébiránt itt a programkód, ha kísérleteznél vele:


import timeit

def összead_rendez(egyiklista, másiklista):
    return sorted(set(egyiklista + másiklista))

def összefuttat(egyiklista, másiklista):
    i, j = 0, 0
    eredménylista = []
    lenegyik = len(egyiklista)
    lenmásik = len(másiklista)
    while i < lenegyik and j < lenmásik:
        if egyiklista[i] < másiklista[j]:
            eredménylista.append(egyiklista[i])
            i += 1
        elif egyiklista[i] == másiklista[j]:
            eredménylista.append(egyiklista[i])
            i += 1
            j += 1
        else:
            eredménylista.append(másiklista[j])
            j += 1
    if i < lenegyik:
        eredménylista.extend(egyiklista[i:])
    if j < lenmásik:
        eredménylista.extend(másiklista[j:])
        return eredménylista

párosak = list(range(0, 10000000, 2))
páratlanok = [0]
páratlanok.extend(list(range(1, 20000000, 2)))
#a 0 azért szerepel a páratlanok elején, hogy meg kellejn birkózni azzal, amikor azonos elemek vannak
#az összefuttatandó listákban

print(timeit.timeit('összead_rendez(párosak, páratlanok)', number=5, globals=globals()))
print(timeit.timeit('összefuttat(párosak, páratlanok)', number=5, globals=globals()))

Legutóbb egyesítettünk, azaz unióztunk.

Reklámok

Összefuttatás (rendezettek uniója) – avagy a nagy koppanás története” bejegyzéshez ozzászólás

  1. Kedves raerek!

    Most az utolsó lecke után ismét hálás köszönetemet fejezem ki az összes tananyagért, a mindig segítőkész válaszokért.

    Szeretnék kérdezni, írni neked egy privát témában. Írhatok egy privát facebook üzenetet vagy hogy lenne neked legjobb? (Nem szeretnék tolakodó lenni…)

    Kedvelés

  2. Kedves Raerek!
    Ez a sorozat egy KINCS. (Nem, nem kell elásni 🙂 ) Igen, csupa nagybetűvel. Mindenkinek ajánlani fogom és már ajánlottam is.
    Jól összeszedett, megfelelően magyarázott, humoros, jó tempójú.
    Ha van kedved or/and időd, akkor szívesen vennék egy aktuális érettségis programozás videót. Láttam, hogy linkeltél már egyet, de tőled, a te stílusodban lenne igazán jó és eredeti.
    Köszönöm, hogy megtanulhattam általad a python-t 🙂

    while True:
    print(‘Köszönöm!’)

    Üdvözlette: Imre

    Kedvelik 1 személy

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s