Sıralı dizi içerisinde hedef sayıya en yakın k sayı - Arama Algoritması

Sıralı olarak verilen bir dizi içerisinde, hedef olarak belirtilen sayıya en yakın(eşit değil) k tane elemanı elde etmeye yarayan problemdir.

Problemin basit olarak çözümü, k tane elemanın bulunması için diziyi lineer olarak aramaktan geçer.

  1. İlk elemandan başlayarak geçit alanına kadar gel(Geçit alanı: Sonraki elemanın büyük, üzerinde bulunan elemanın …
more ...

Hangi sıralama algoritması belleğe en az sayıda yazma yapar?

Hafızaya yazma işlemini azaltmak, büyük veri kümeeleri üzerinde uğraşmanın maliyetli olduğu EEPROMs ve ya flash gibi platformlar için kazançlıdır.

Sıralama algoritmaları arasında Selection Sort agoritmasının en az sayıda yazma işlemi yaptığını(O(n)) biliyoruz. Fakat Cycle Sort neredeyse her zaman Selection Sort algoritmasına göre daha az sayıda yazma işlemi yapar …

more ...


Sıralama algoritmalarında kararlılık nedir?

Sıralama algoritmalarında bazen kararlılık ile ilgili bir takım bilgiler görürüz.Kısaca açıklamak gerekirse, sırarısz bir dizide aynı değerlere sahip elemanların dizilişi, dizi sıralandığında da korunuyorsa algoritma kararlıdır.

Kararlı özelliğine sahip algoritmalar; Insertion sort, Merge sort, Bubble sort. Kararsız olanlar; Heap sort, Quick sort.

Ancak verilen kararlı olmayan aloritmalar kolayca kararlı …

more ...

Quick sort için en kötü durum nedir?

Quick sort ortalama zamanda çalıştığında en verimli çalışan ve en çok kullanılan algoritmalardan biridir. Pivot seçiminin ne kadar önemli olduğunu algoritmayı incelediğinizde göreceksiniz.

En kötü duruma sebebiyet veren şartlar aşağıdadır.

  1. Dizi zaten aynı yönde sıralıysa.
  2. Dizi ters yönde sıralıysa.
  3. Tüm elemanlar aynıysa
more ...

Apache Spark - Part 1 : Tanıtım

Apache Spark,büyük veri işleme amacı ile oluşturulmuş bir Apache projesidir.Scala dili ile yazılmış JVM üzerinde çalışan ve Python, Java, Scala kullanımına olanak sağlayan, "in-memory" yani veriyi bellek içerisinde işleme özelliği ile ön plana çıkan bir projedir.

Eğer isterseniz kaynak kodları görüntülemek için aşağıdaki adrese göz atabilirsiniz.

https://github …

more ...

Rastgele Sayı Üretmek

Rastgele yani tesadüfen , tesadüfi olarak , ayırmadan , seçmeden anlamındadır.Çoğumuz yazdığımız kodu test ederken , oyun programlarken ve çişitli hesaplamarda kullanırız rastgele sayıları.Günlük hayatta rastgele kavramı insalar için keyfi olarak kullanılır.Aklınızdan bir sayı tutup söylersiniz bu bir rastgele işlemidir.Peki gerçekten böylemidir,bilgisayarlar için de durum bu mudur?

Hep verilen …

more ...

Suffix Tree - String Algoritmaları

Biyoinformatik'de adı sıkça geçen algoritmalardan olan suffix tree veri yapısı bir dizgi model(pattern) eşleştirme algoritmasıdır.Örneğin elinizde uzun bir dizgi olsun ve siz bu dizgi içinde alt dizgiler aramak ve hatta bu dizgilerden kaç adet bulunduğunu öğrenmek istiyorsunuz.İşte bu veri yapısı bu işlemleri kolaylaştırmak ile birlikte gayet hızlı …

more ...

Radix Sort - Sıralama Algoritmaları

Türkçe'de taban sıralaması , basamaklı sıralama , kök sıralaması veya hane sıralaması olarak geçen bu algoritmada sıralanacak olan veriler hanelerine göre sıralanır.En değersiz olan haneden en değerli haneye doğru sıralama işlemi yapılır.

Sıralanacak verilerin tamsayı olduğu durumlarda kullanılan bu algoritma işlenirken ilk olarak sıralanacak olan veri kümesindeki elemanların en büyük elemanının …

more ...

Quick Sort - Sıralama Algoritmaları

Quick sort, Türkçe hızlı arama olan bu algoritma günümüzde en çok tercih edilen sıralama algoritmasıdır.1960 yılında C. A. R. Hoare tarafından ortaya atılmıştır.Bu algoritma yaklaşım bakımından "parçala ve çözümle" ilkesine göre çalışmaktadır.

Bu yaklaşım şu şekilde açıklanabilir.Eldeki problem çok daha ufak problemciklere ayrılır ve bütün bu problemcikler …

more ...