CodeBlanks Logo Icon CodeBlanks

Öncelikli kuyruk

Prim'in öncelikli kuyrukla verimli çalıştığını öğrenirsin.

En düşük anahtar

Prim'de her düğümün bir keys değeri vardır: ağaca bağlanmanın en düşük maliyeti. Her adımda en düşük keys'e sahip ziyaret edilmemiş düğüm seçilir.

Bu seçim, doğrusal arama ile yapılabilir. min_key(keys, visited) fonksiyonu bu seçimi yapar.

Başlangıç durumu

keys başlangıçta tüm düğümler için inf'tir; yalnızca başlangıç düğümü keys[0] = 0 olur. Böylece ilk seçim başlangıç düğümüdür.

Ziyaret dizisi tüm düğümler için False ile başlar. Ağaç tek düğümden büyümeye başlar.

Uygulama min_key fonksiyonu

min_key(keys, visited) yaz. Ziyaret edilmemiş ve en küçük keys'e sahip indeksi döndür. print(min_key([0, float('inf'), float('inf'), float('inf')], [False, False, False, False])) ile 0 yazdır.

Başlangıç kodu

solution.py
def min_key(keys, visited):
    # En küçük keys'e sahip ziyaret edilmemiş indeksi bul

Örnek çözüm

solution.py
def min_key(keys, visited):
    # En küçük keys'e sahip ziyaret edilmemiş indeksi bul
    best = float('inf')
    idx = -1
    for i in range(len(keys)):
        if not visited[i] and keys[i] < best:
            best = keys[i]
            idx = i
    return idx
print(min_key([0, float('inf'), float('inf'), float('inf')], [False, False, False, False]))

Beklenen çıktı

0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 min seçimi

Soru
if not visited[i] and keys[i] ____ best:
Cevap
if not visited[i] and keys[i] < best:

Açıklama: < doğru.

2 min_key hangi düğümü döndürür?

  • En büyük keys'i
  • En küçük keys'i Doğru cevap
  • Rastgele düğümü
  • İlk ziyaret edilmişi

Açıklama: min_key en küçük keys'e sahip düğümü döndürür.

3 Öncelikli kuyruk: kavramları eşleştir

Kavram Anlamı
keys Maliyet
visited Ziyaret
min_key Seçim
inf Sonsuz

İleri seviye bölümündeki tüm dersler