Kayıtlar

Big O Notation Nedir? Büyük O Notasyou Nedir? | O(n) O(log n) O(1)

Resim
Big O notation , nam-ı diğer Büyük O notasyonu herhangi bir algoritmanın karmaşıklık düzeyini (time complexity / complexity level) açıklamamıza yardımcı olur. Bu sayede benzer algoritmaları zaman ve performans bakımından birbiriyle kıyaslayabilir ve projemiz için hangisinin daha maliyetli veya daha uygun olduğunu saptayabiliriz. Big O  gösterilirken O(x) tarzında yazılırak gösterilir. Aşağıdaki örneklerde x yerine neler yazıldığını ve yazılanların ne anlam ifade ettiğini göreceğiz. Ek olarak bilinmesi gerekir, Big O gösterimi en kötü (worst case) senaryoyu temsil eder. Big O dışında Omega (best case) yani en iyi senaryo ve Theta (mid case) yani orta seviye senaryo gibi başlıkları inceleyebilirsiniz. Ayrıca bu gösterimlerden önce veri yapıları hakkında bilgi sahibi olmanızda da yarar vardır. O(1) | Constant Time Her çalıştığında aynı miktarda zaman alan kod parçaları O(1) şeklinde gösterilir. Kabaca, yapılacak işlem başka bir şeye bağlı olmadığında karmaşıklık düzeyi O(1) olur diyebili

Harekete Geçmenin Gücü - 3 | Çözüm Noktasına Ulaştım!

Resim
Bu seriye ait önceki yazılarımı okuduysanız elimde kendime ait bir çok veri olduğunu ve bunları sizlerle paylaşacağımı zaten söylemiştim. Eğer okumadıysanız, "Harekete Geçmenin Gücü" isimli serimin bir önceki bölümünü  buraya tıklayarak  okuyabilirsiniz. Şimdi bu verileri neden topladığımdan başlayarak harekete geçmenin asıl gücünün nereden geldiğini anlamaya çalıştığım süreci, yani kaynağını açıklayacağım. Harekete geçmenin de bir güç gerektirdiğini ilk keşfettiğim andan başlayarak ilerleyelim... Yaklaşık bir yıl önce, Haziran 2021 günlerine dönelim. İlk defa DGS'ye ( Dikey Geçiş Sınavı ) çalışmaya karar verdiğimde bir şeyleri alışageldiğimin dışında yapmam gerektiğinin farkındaydım. Bu yüzden öncelikle bir kaç tecrübeli insanın deneyimlerini öğrenmek istedim, biraz araştırma yaptım. Edindiğim bilgilerden sonra eksiklerimi belirledim. En önemli eksiğim doğru soru bankalarına ulaşamamak ve bu yüzden de yeterince soru çözememekti ve bunun yanı sıra deneme sınavı analizleri

Satranç At Pozisyon Kontrol Algoritması - Programlama Dilinden Bağımsız Resimli Anlatım

Resim
Algoritmanın mantığını programlama dilinden bağımsız olarak anlatacağım ancak benim Java ile nasıl çözdüğümü görmek isterseniz bu sayfanın en altında paylaşacağım. Algoritmanın Açıklaması Algoritmamız 8x8 'lik klasik ve tamamen boş bir satranç tahtası üzerinde gelişecek. Algoritmaya atı koyduğumuz konumun noktalarını vereceğiz ve algoritma bu konumda atın kaç farklı noktaya hareket edebileceğini bulmaya çalışacak. Örnek olarak ben atımı "1, 1" konumuna koyarsam algoritma bana 2 farklı noktaya ilerleyebileceğimi söylemeli, bunlar "2, 3" ve "3, 2" noktaları olur. Algoritmanın Resimli Açıklaması Gelin şimdi algoritmaya neden klasik satranç tahtasındaki gibi a, b, c gibi harfler değil de sağ taraftaki gibi her tarafına 1 den 8 'e kadar rakamlar verdiğimizi anlamaya çalışalım. Bunun için bize bir koordinat düzlemi gerekiyor. Şimdi satranç tahtamız üzerinde atımızı ilerletebileceğimiz maksimum noktanın olduğu bir pozisyona yerleştirelim ve bu koordinat d

Neden Tek Bir Doğru Yoktur? | Doğrunun Çerçevesi

Resim
Onluk (decimal) sayı sistemindeki 1+1 'in sonucu ile ikilik (binary) sayı sistemindeki 1+1 'in sonucu aynı değildir. İnsanların birbirlerine bir şeyler anlatmaya çalışırken "hayır, doğrusu bu..." şeklinde devam ederek birbirlerinin söylediklerini çürütmeye çalıştıkları anda aslında benzer şeylerin farklı yüzlerini savunduklarını gördüğüm zaman aynı şeyleri bizzat kendimin de yaşadığını fark ettim. Bazen birileriyle konuşup tartışırken,  bazen de kendi kendime bir konunun farklı yönlerini düşünürken... Doğrunun ne demek olduğunu sorgulamaya böyle başladım. Fark ettiğim ilk şey, doğrunun çerçevesi olmadıkça var olamadığı oldu. Yani, bir şeyi doğru kabul edebilmemiz için öncelikle onu tanımlayabilmemiz gerekir. Doğru olarak varsaydığımız şeyi bir çerçeveye oturtmamız gerekir. Haliyle bunun sonucunda doğru saydığımız şeyin kendisinden çok çerçevesinin önemli olduğu sonucuna vardım. Hemen bir soru ve ardından bu soruya vereceğim cevaplarla ne demek istediğimi açıklayayım; 

Fikstür Oluşturma Algoritmasının En Basit Anlatımı

Resim
Fikstür algoritmasını kurarken bilmemiz gereken şeyler, Takımlar bir kere mi eşleşecek, iki kere mi eşleşecek? Toplam kaç takım var? Bu iki soruya verdiğimiz cevaplar ile geri kalan tüm sorularımızın cevabını bulabiliyoruz. Her turda kaç takım eşleşecek? => Toplam takım sayısını ikiye bölerek bulabiliriz. Toplam kaç tur oynanacak? => - Eğer takımlar bir kere eşleşecekse: Toplam takım sayısı eksi bir kez... - Eğer takımlar iki kere eşleşecekse: Toplam takım sayısı eksi bir çarpı iki kez... Algoritmanın Yazılı Anlatımı Takımları bir dizi içerisinde alalım. [a, b, c, d] Takımların yerlerini rastgele değiştirelim. [c, a, b, d] Eğer ki dizinin içerisinde 3, 5, 7 gibi tek sayıda takım varsa, dizimize "Oynamayacak" adında bir takım daha ekleyelim. Bunu yapmamızın sebebi boşta kalacak olan takımın o tur oynamayacak olduğunu belirtmek sadece. Toplam tur sayısı kadar dönen bir döngü başlatıyoruz. Bu döngü benim anlatacağım algoritmaya göre takımlar bir kez eşleşecekmiş gibi kurgu

Harekete Geçmenin Gücü - 2 | Belirsizliğin Adını Koydum

Resim
Harekete geçmek bize bir itki gücü verebilir, buna katılıyorum. Ancak harekete geçmek de bir güç gerektirir, bunu anlatmaya çalışıyorum. Resim: pixabay.com Altı ay kadar önce " Harekete Geçmenin Gücü Belirsizliğin Adını Koymaktan Gelir " başlıklı bir yazı yazmıştım. Kısaca hatırlatmam gerekirse, harekete geçmek için motivasyon aramak yerine belirsizliğin adını koyup yol almaya başlamanın öneminden bahsetmiştim. Ardından konuyla ilgili paylaşabileceğim verilerimin olduğunu söylemiştim ve bu topladığım veriler dahilinde anlatmak istediklerimi pekiştirecektim. Fakat altı aylık verilerin çok fazla anlam ifade etmeyeceğini düşünüp verilerimi bir yıla tamamlamaya karar verdim. Şu an okumakta olduğunuz bu yazıda ise düşüncelerimi tazelemek üzere bazı örneklerden yola çıkarak anlatımımı yinelemek ve bir tık güçlendirmek istiyorum. Birçok yerde sizin de karşınıza çıkmıştır ya da kulağınıza çalınmıştır. Derler ki; "zor görünen işler de dahil olmak üzere her iş biz harekete geçtikt

Harekete Geçmenin Gücü Belirsizliğin Adını Koymaktan Gelir

Resim
Resim: Pixabay.com Birisi karşıma geçip, "harekete geçmek aslında zor değil, sen belirsizliği yönetemiyorsun" deseydi muhtemelen ona şöyle bir bakıp, gülümser ve benimle dalga geçtiğini düşünürdüm. Ancak bunu şimdi ben size, bu cümlenin altında barındırdığı anlamı ortaya koyarak söylemem gerektiğini düşünüyorum. Özellikle uzun vadeli bir işe girişmek istediğimizde bir çok belirsizlikle karşı karşıya kalırız. İşten kastımız yılda bir kere yapılan YKS, KPSS, DGS vb. sınavlar veya herhangi bir konuda yol kat etmek olabilir. Bu tür zamanlarda genellikle bir motivasyon arayışına gireriz. Çoğu zaman da o motivasyonu buluruz. Ancak o motivasyon bizi bir anlık gaza getirse de yeterli olmaz. Gün geçtikçe bir eksiklik hissederiz. Adını bir türlü koyamadığımız bir belirsizlik vardır. Bizi harekete geçmekten alıkoyan bir belirsizlik. İşte tam da bu durumda tıpkı bir tiryaki gibi yeni bir motivasyon arayışına girmek muhtemelen yapacağımız ilk şey oluyor. Tekrar motive olabilmek ve hareket