CodeBlanks Logo Icon CodeBlanks

Meydan okuma 1

Bir dizideki en büyük elemanı bulan algoritmayı yazarsın.

Meydan okuma 1: Arama ve sıralama

Bu meydan okumada doğrusal arama ve bubble sort'u birleştireceksin. Önce diziyi sırala, sonra hedefi ikili arama ile bul.

Dizi: [5, 2, 8, 1, 9]. Hedef: 8. Sırala: [1, 2, 5, 8, 9]. İkili arama ile 8'in indeksini bul.

Uygulama Sırala ve ara

sort_and_search(arr, target) yaz. Önce bubble sort ile sırala, sonra binary search ile bul. print(sort_and_search([5,2,8,1,9], 8)) ile 3 yazdır.

Başlangıç kodu

solution.py
def sort_and_search(arr, target):
    # Sırala ve ara

Örnek çözüm

solution.py
def sort_and_search(arr, target):
    # Sırala ve ara
    for i in range(len(arr)):
        for j in range(len(arr) - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1
print(sort_and_search([5, 2, 8, 1, 9], 8))

Beklenen çıktı

3

Soru ve cevaplar

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

1 Sıralanmış [1,2,5,8,9] dizisinde 8'in indeksi nedir?

  • 4
  • 3
  • 2 Doğru cevap
  • 1

Açıklama: 8'in indeksi 3'tür.

2 İkili arama

Soru
Sıralı dizide ikili arama ____ gerektirir.
Cevap
Sıralı dizide ikili arama sıralı dizi gerektirir.

Açıklama: sıralı dizi doğru.

3 Meydan okuma 1: kavramları eşleştir

Kavram Anlamı
bubble sort Sıralar
binary search Bulur
O(n^2) Sıralama
O(log n) Arama

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