Meydan okuma 1
- Algoritmalar kursu
- Başlangıç
- Ders 77/80
- 4 dk
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
def sort_and_search(arr, target):
# Sırala ve araÖrnek çözüm
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
Sıralı dizide ikili arama ____ gerektirir.
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 |