Python ile Dizi İçerisindeki En Büyük Üç Sayıyı Bulma

Python kullanarak örnek algoritma sorularını çözdüğümüz serimizin on üçüncü sorusuna geçelim:

  1. Bir dizi içerisinde sadece bir kez kullanılan ilk elemanı bulma:
    • Örnek girdi: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
    • Örnek çıktı: [9, 6, 5]
  1. Çözüm Yolu: sort() Metodu
def en_buyuk_uc_sayi(dizi):
    dizi.sort(reverse=True)
    return dizi[:3]

# Örnek kullanım:
giris_dizi = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
cikis = en_buyuk_uc_sayi(giris_dizi)
print("Sıralama Kullanarak Bulunan Üç Sayı:", cikis)  # [9, 6, 5]

Yukarıdaki kodumuzda, en_buyuk_uc_sayi adında bir fonksiyon tanımladık. Fonksiyonumuzda, reverse=True argümanını kullanarak sort() metodundaki sıralamayı büyükten küçüğe olacak şekilde gerçekleştirdik. Ardından dilimleme yöntemini kullanarak (dizi[:3]) en büyük 3 sayıyı döndürdük. Kodu çalıştırmak için: Trinket

  1. Çözüm Yolu: Lineer Tarama
def en_buyuk_uc_sayi(dizi):
    dizi.sort(reverse=True)
    return dizi[:3]

# Örnek kullanım:
giris_dizi = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
cikis = en_buyuk_uc_sayi(giris_dizi)
print("Sıralama Kullanarak Bulunan Üç Sayı:", cikis)  # [9, 6, 5]

Yukarıdaki kodumuzda, en_buyuk_uc_sayi_lineer adında yeni bir fonksiyon tanımladık. Bu fonksiyon, aldığı sayı listesinden en büyük üç sayıyı lineer tarama yöntemiyle bulmayı amaçlar.

Fonksiyonun başlangıcında, max1, max2 ve max3 adında üç değişken tanımlıyoruz. Bu değişkenler sırasıyla en büyük, ikinci en büyük ve üçüncü en büyük sayıları tutmak için kullanılır. Başlangıç değerleri olarak ‘-inf’ (negatif sonsuz) atandı, böylece bu değişkenler ilk karşılaştıkları herhangi bir sayıdan küçük olacaktır.

Dizi içindeki her sayıyı tek tek dolaşarak, bu sayının en büyük üç sayıdan hangisiyle karşılaştırılması gerektiğini kontrol ediyoruz. Eğer sayı max1‘den büyükse, max1‘i max2‘ye, max2‘yi max3‘e atayarak en büyük değeri max1‘e atıyoruz. Aynı mantık, sayı max1 ile max2 arasında veya max2 ile max3 arasında olduğunda da uygulanır.

Tüm dizi bu şekilde tarandıktan sonra, max1, max2 ve max3 değişkenlerindeki değerler en büyük üç sayıyı temsil eder. Bu üç sayıyı bir liste olarak döndürüyoruz.

Son olarak, bir örnek dizi olan giris_dizi ile bu fonksiyonu test ediyoruz. Sonuç olarak [9, 6, 5] değerlerini elde ediyoruz, bu da en büyük üç sayıdır. Bu yöntem, diziyi sadece bir kere tarayarak sonucu bulduğu için lineer zamanda çalışır ve büyük diziler için oldukça verimlidir. Kodu çalıştırmak için: Trinket

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu