Hayatımızın Big O Notation’ı: Günlük Yaşamda Verimlilik Analizi

Hatice Özbolat
3 min readApr 24, 2024
from GIPHY

Bugün biraz ilginç bir konudan bahsetmek istiyorum: “Big O Notation”. Yazılım sektöründe değilseniz ya da meraklısı değilseniz bu kavramı duymuş olmanız pek mümkün değil ? Peki nedir bu Big O Notation?

Termilojik olarak bir algoritmanın veya işlemin en kötü durumda (en fazla kaynak tüketimi veya en fazla çalışma zamanı) ne kadar verimli olduğunu tanımlamak için kullanılan bir analiz yöntemidir. Bu gösterim, algoritmaların ve veri yapılarının performansını karşılaştırmak, optimize etmek ve tahmin etmek için kullanılır.

O(1): Sabit zaman karmaşıklığı. Algoritmanın çalışma süresi giriş boyutuyla değişmez.
O(log n): Logaritmik zaman karmaşıklığı. Algoritmanın çalışma süresi logaritmik olarak giriş boyutuyla büyür.
O(n): Doğrusal zaman karmaşıklığı. Algoritmanın çalışma süresi giriş boyutuyla doğrusal olarak büyür.
O(n²): Karesel zaman karmaşıklığı. Algoritmanın çalışma süresi giriş boyutuyla karesel olarak büyür.
O(2^n): Üstel zaman karmaşıklığı. Algoritmanın çalışma süresi giriş boyutuyla üstel olarak büyür.

Aslında günlük hayatımızda da karşımıza çıkıyor. Nasıl mı? Hadi birlikte keşfedelim!

Biraz düşünelim, mesela yemek yaparken bile Big O Notation’ı kullanıyoruz. Bir sandviç yapmak mı istiyorsunuz? O zaman işiniz çok kolay, çünkü bunu hazırlamak sabit bir süre alır, yani O(1). Ancak, bir pasta pişirmek mi istiyorsunuz? İşte burada süre malzeme miktarına bağlı olarak artabilir, yani O(n).

Alışveriş yaparken de aynı şey geçerli. Bir ürünün fiyatını kontrol etmek internet üzerinden hızlıca yapılabilir, bu da O(1) demektir. Ancak, alışveriş merkezinde gezinmek ve fiyatları karşılaştırmak O(n) sürebilir, çünkü her mağazayı ziyaret etmek zaman alır.

Ve tabii ki, sosyal etkileşimlerimizde de Big O Notation’ı düşünüyoruz. Bir toplulukta herkesle tek tek konuşmak mı istiyorsunuz? O zaman, her bir kişiyle konuşmak O(n) demektir. Ancak, bir grup etkinliğine katılmak ve birçok kişiyle aynı anda etkileşimde bulunmak O(1) olabilir, çünkü birçok kişiyle aynı anda konuşabilirsiniz.

Gördüğünüz gibi, Big O Notation sadece kod yazarken değil, günlük hayatımızda da karşımıza çıkıyor. Bu kavramı anlamak, çeşitli durumları analiz etmek ve daha etkili kararlar almak için bize yardımcı olabilir. Yani, artık sadece yazılım dünyasında değil, hayatımızın her alanında bu kavramı görebiliriz. Ne dersiniz, bir sonraki sandviç yapma veya alışveriş gezinizde Big O Notation’ı düşünmeye hazır mısınız?

Yazımı buraya kadar okuduysan ve benzeri içerikler paylaşmamı istiyorsan beğenmeyi ve yorum bırakmayı unutmayın ✨😍

--

--