İçeriğe atla
CodeItRaw
Sıralama

Ders 2/5

Hazır fonksiyonu kullanacaksın, ama içinde ne olduğunu bir kez görmek gerekir. En sade yöntem eklemeli sıralamadır: elindeki kâğıtları dizer gibi, her yeni elemanı solundaki sıralı kısımda yerine kaydırırsın.

for i in range(1, len(values)):
x = values[i]
j = i - 1
while j >= 0 and values[j] > x:
values[j + 1] = values[j]
j -= 1
values[j + 1] = x
x kenara alınır; ondan büyük olanlar birer sağa kayar; açılan boşluğa x yazılır. Döngü bittiğinde j, x'ten büyük olmayan son elemanı gösterir; boşluk onun bir sağındadır.

Bu yöntem en kötü durumda n × n adım atar (ters sıralı liste). İyi yöntemler (Python'un kullandığı da) n log n'dir: bir milyon eleman için bir trilyon yerine yirmi milyon adım. Akılda tutulacak sonuç: bir kez sıralamak ucuzdur; sıraladıktan sonra her arama ikili aramayla log n'e iner. n sorgu için "sırala, sonra ara" toplamda n log n eder.

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

    Eklemeli Sıralama

    Kod Okuma · Hatayı Bul

  2. 02

    Sırala ve Ara

    Kod Okuma · Big-O Oku

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