Tam sıralama
- Algoritmalar kursu
- Başlangıç
- Ders 23/80
- 4 dk
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
def is_sorted(arr):
# Sıralı mı kontrol etÖrnek çözüm
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
Sıralıysa ____ döndürülür.
Sıralıysa True döndürülür.
Açıklama: True doğru.