CodeBlanks Logo Icon CodeBlanks

Minimum bulma

Bir dilimde en küçük elemanın indeksini bulmayı öğrenirsin.

Yer değiştirme

Minimum bulunduktan sonra, onu sıralanmamış bölümün ilk elemanıyla yer değiştirirsin. Bu, o elemanı doğru yerine koymuş olur.

Yer değiştirme O(1) zaman alır: yalnızca iki eleman değiştirilir. Toplamda n-1 yer değiştirme yapılır.

Sıralanmış bölüm büyümesi

Her yer değiştirmeden sonra sıralanmış bölüm bir eleman büyür. Selection sort, baştan sona doğru sıralanmış bölümü genişletir.

i. adımda, ilk i eleman sıralıdır ve geri kalan sıralanmamıştır. Son adımda tüm dizi sıralıdır.

Uygulama Yer değiştir

swap_min(arr, i, min_idx) yaz. arr[i] ile arr[min_idx]'i değiştir, arr döndür. print(swap_min([3, 1, 2], 0, 1)) ile [1, 3, 2] yazdır.

Başlangıç kodu

solution.py
def swap_min(arr, i, min_idx):
    # İki elemanı değiştir

Örnek çözüm

solution.py
def swap_min(arr, i, min_idx):
    # İki elemanı değiştir
    arr[i], arr[min_idx] = arr[min_idx], arr[i]
    return arr
print(swap_min([3, 1, 2], 0, 1))

Beklenen çıktı

[1, 3, 2]

Soru ve cevaplar

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

1 Yer değiştirme

Soru
İki elemanı değiştir: arr[i], arr[min_idx] = ____
Cevap
İki elemanı değiştir: arr[i], arr[min_idx] = arr[min_idx]

Açıklama: arr[min_idx] doğru.

2 Minimum bulma: kavramları eşleştir

Kavram Anlamı
Swap Yer değiştir
min_idx Minimum indeks
O(1) Swap süresi
n-1 Swap sayısı

3 Yer değiştirme ne kadar sürer?

  • O(log n) Doğru cevap
  • O(n^2)
  • O(n)
  • O(1)

Açıklama: Yer değiştirme O(1)'dir.

Başlangıç bölümündeki tüm dersler