İçeriğe atla
CodeItRaw
İki İşaretçi & Kayan Pencere

Ders 3/4

İki işaretçi aynı listede olmak zorunda değil. İki sıralı listeyi birleştirirken her listede bir işaretçi tutarsın; her adımda küçük olanı alır ve yalnızca o listenin işaretçisini ilerletirsin.

i = j = 0
out = []
while i < len(a) and j < len(b):
if a[i] <= b[j]:
out.append(a[i])
i += 1
else:
out.append(b[j])
j += 1
return out + a[i:] + b[j:]
Döngü listelerden biri bitince durur; diğerinde kalanlar zaten sıralıdır ve olduğu gibi sona eklenir. Toplam adım sayısı iki listenin uzunlukları toplamıdır.

Bu, birleştirerek sıralamanın (merge sort) kalbidir ve ileride karşına çıkacak. Şimdilik görmen gereken: iki işaretçi, her adımda biri ilerler, hiçbiri geri gitmez.

Görevler

Görevler sırayla açılır. Hepsini çözünce sonraki ders açılır.

Bu dersin görevleri, önceki dersler bitince açılır. Anlatımı şimdiden okuyabilirsin.

  1. 01

    İki Listeyi Birleştir

    Kod Okuma · Çıktıyı Tahmin Et

  2. 02

    Sıralı Çift Toplamı

    Kod Okuma · Big-O Oku

Sırayı beklemeden çözmek istersen bütün problemler kilitsiz açık: Problemler listesi