CodeBlanks Logo Icon CodeBlanks

İstatistik yazdır

En düşük, en yüksek ve medyan puanı yazdırırsın.

İstatistik yazdır

Son adımda sıralı dizinin en düşük ve en yüksek puanını yazdıracağız. Sıralı dizi [78, 85, 88, 90, 92] ise min 78, max 92.

Sıralı dizide min ilk eleman sorted[0], max son eleman sorted[-1]. İkisini ayrı satırda yazdırabiliriz.

Bu, projenin son parçası; tüm fonksiyonlar bir arada çalışır.

Min ve max

Sıralı bir dizide en küçük değer ilk elemandır sorted[0], en büyük değer son elemandır sorted[-1]. Arama gerekmez.

Bu, sıralamanın bir yan faydasıdır: sıralı veri üzerinde min/max sorgusu O(1) olur. Sırasız veride ise O(n).

İstatistik hesaplarında bu fark önemlidir; sıralı tutmak hız kazandırır.

Uygulama İstatistik yazdır

print_stats(scores) yaz. Sırala, min ve max'ı yazdır. print_stats(init_scores()) ile 78 92 yazdır.

Başlangıç kodu

solution.py
def init_scores():
    # Puan dizisi döndür
    return [85, 92, 78, 90, 88]
def merge_sort_scores(scores):
    # Skorları sırala
    if len(scores) <= 1:
        return scores
    mid = len(scores) // 2
    left = merge_sort_scores(scores[:mid])
    right = merge_sort_scores(scores[mid:])
    return merge(left, right)
def top_k(scores, k):
    # En büyük k taneyi al
    sorted_scores = merge_sort_scores(scores)
    return sorted_scores[-k:]
def print_stats(scores):
    # İstatistik yazdır

Örnek çözüm

solution.py
def merge(left, right):
    result = []
    i = j = 0
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i]); i += 1
        else:
            result.append(right[j]); j += 1
    result.extend(left[i:]); result.extend(right[j:])
    return result
def init_scores():
    # Puan dizisi döndür
    return [85, 92, 78, 90, 88]
def merge_sort_scores(scores):
    # Skorları sırala
    if len(scores) <= 1:
        return scores
    mid = len(scores) // 2
    left = merge_sort_scores(scores[:mid])
    right = merge_sort_scores(scores[mid:])
    return merge(left, right)
def top_k(scores, k):
    # En büyük k taneyi al
    sorted_scores = merge_sort_scores(scores)
    return sorted_scores[-k:]
def print_stats(scores):
    # İstatistik yazdır
    sorted_scores = merge_sort_scores(scores)
    print(sorted_scores[0], sorted_scores[-1])
print_stats(init_scores())

Beklenen çıktı

78 92

Soru ve cevaplar

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

1 İstatistik yazdır: kavramları eşleştir

Kavram Anlamı
Min sorted[0]
Max sorted[-1]
Sırala merge_sort_scores
Top N [-k:]

2 Sıralı dizide max nerededir?

  • Son eleman Doğru cevap
  • Ortanca
  • Rastgele
  • İlk eleman

Açıklama: Son eleman

3 Min erişim

Soru
print(sorted_scores[____])
Cevap
print(sorted_scores[0])

Açıklama: 0 doğru.

Orta seviye bölümündeki tüm dersler