CodeBlanks Logo Icon CodeBlanks

Tam sıralama

Birden fazla geçişle diziyi tamamen sıralamayı ve O(n^2) karmaşıklığını öğrenirsin.

Sıralı mı kontrolü

Bir dizinin sıralı olup olmadığını kontrol etmek için komşu çiftleri gezer ve her birinin doğru sırada olduğunu doğrularsın.

Bir tane bile yanlış sıradaki çift bulursan dizi sıralı değildir. Tüm çiftler doğruysa dizi sıralıdır.

Erken durma

Bubble sort'u iyileştirmek için, bir geçişte hiç yer değiştirme olmazsa dizi sıralıdır ve algoritma durabilir. Bu, en iyi durumu O(n) yapar.

Bu iyileştirme, bir swapped bayrağıyla yapılır: geçiş başında False, yer değiştirme olunca True. Geçiş sonunda hala False ise döngü kırılır.

Uygulama Sıralı mı

is_sorted(arr) yaz. Komşuları kontrol et, sıralıysa True değilse False döndür. print(is_sorted([1, 2, 3])) ile True yazdır.

Başlangıç kodu

solution.py
def is_sorted(arr):
    # Sıralı mı kontrol et

Örnek çözüm

solution.py
def is_sorted(arr):
    # Sıralı mı kontrol et
    for i in range(len(arr) - 1):
        if arr[i] > arr[i + 1]:
            return False
    return True
print(is_sorted([1, 2, 3]))

Beklenen çıktı

True

Soru ve cevaplar

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

1 Tam sıralama: kavramları eşleştir

Kavram Anlamı
Sıralı Komşular doğru
Geçiş Baştan sona
Swap yok Durdur
O(n^2) En kötü

2 Bir geçişte swap olmazsa ne anlama gelir?

  • Dizi bozuk
  • Dizi sıralı Doğru cevap
  • Dizi boş
  • Dizi çok büyük

Açıklama: Swap yoksa dizi sıralıdır.

3 Sıralı kontrol

Soru
Sıralıysa ____ döndürülür.
Cevap
Sıralıysa True döndürülür.

Açıklama: True doğru.

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