CodeBlanks Logo Icon CodeBlanks

Insertion sort mantığı

Kart sıralar gibi her elemanı sol taraftaki sıralı bölüme yerleştiren algoritmayı öğrenirsin.

Insertion sort mantığı

Insertion sort, bir diziyi sıralamak için her elemanı alır ve sıralı bölümdeki doğru yerine yerleştirir. Bu, kartları eline dizmeye benzer.

Başlangıçta ilk eleman sıralı sayılır. Sonra ikinci eleman alınır ve ilkine göre doğru yere konur. Bu tüm elemanlar için tekrarlanır.

Kaydırma

Bir elemanı yerleştirirken, ondan büyük olan sıralı elemanları bir adım sağa kaydırırsın. Bu, yeni eleman için yer açar.

Kaydırma, elemanları tek tek sağa taşır. Boşalan yere yeni eleman konur. Bu, yer değiştirmeden daha az yazma işlemidir.

Uygulama Kaydır ve yerleştir

insert_in_place(arr, i) yaz. arr[i]'yi sıralı bölüme doğru yerleştir. print(insert_in_place([1, 3, 5, 2], 3)) ile [1, 2, 3, 5] yazdır.

Başlangıç kodu

solution.py
def insert_in_place(arr, i):
    # Doğru yere yerleştir

Örnek çözüm

solution.py
def insert_in_place(arr, i):
    # Doğru yere yerleştir
    key = arr[i]
    j = i - 1
    while j >= 0 and arr[j] > key:
        arr[j + 1] = arr[j]
        j = j - 1
    arr[j + 1] = key
    return arr
print(insert_in_place([1, 3, 5, 2], 3))

Beklenen çıktı

[1, 2, 3, 5]

Soru ve cevaplar

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

1 Insertion sort neye benzer?

  • Ağaç gezmesine
  • İkili aramaya
  • Hash hesaplamaya
  • Kart dizmeye Doğru cevap

Açıklama: Kart dizmeye benzer.

2 Sıralı bölüm

Soru
İlk ____ eleman sıralı sayılır.
Cevap
İlk 1 eleman sıralı sayılır.

Açıklama: 1 doğru.

3 Insertion sort mantığı: kavramları eşleştir

Kavram Anlamı
Insertion sort Doğru yere koy
Kaydırma Sağa taşı
Sıralı bölüm Baş tarafta
O(n^2) En kötü

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