C++ - Doğrusal Arama (Linear Search) Algoritmasi

26 Ağustos 2017

Doğrusal arama, bir dizide, belirli bir değerin olup olmadığını bulmak için kullanılan basit bir algoritmadır. Bu algoritma ile aranan değer, dizinin ilk elemanından başlanarak son elemanına doğru her değerle tek tek karşılaştırılır. Aranan değere eşit değer bulunursa o değerin indisi döndürülür. Eğer aranan değere eşit değer bulunmazsa eksi bir (-1) değeri döndürülür. Eksi bir değeri döndüğünde, aranan değer dizi içinde değildir.

Eleman sayısı az olan dizilerde doğrusal arama algoritması tercih edilebilir. Eleman sayısı fazla olan dizilerde ise ikili arama algoritması tercih edilmelidir.

NOT: Doğrusal arama algoritmasının karmaşıklığı O(n)'dir.

C++ - İkili Arama (Binary Search) Algoritması

23 Ağustos 2017

İkili arama, sıralı bir dizide, belirli bir değerin bulunmasına yönelik bir algoritmadır. Bu algoritmayla her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin dizinin orta değerinden küçük veya büyük mü olduğuna bakılır. Eğer küçükse dizinin orta değeri dahil büyük kısmı yok sayılır ve küçük kısım yeni diziymiş gibi kabul edilir. Eğer büyükse dizinin orta değeri dahil küçük kısmı yok sayılır ve büyük kısım yeni diziymiş gibi kabul edilir. Aranan değeri içeren kısım bir sonraki adımda arama yapılacak yeni dizi olur. Böylelikle arama yapılan dizideki eleman sayısı her adımda yarıya indirilmiş olur.

Örneğin;

int B[10]= {1, 2, 13, 14, 15, 16, 27, 38, 49, 70};

NOT: İndis değeri sıfırdan başlar.
  • Aranan değer nedir? 1
  • 9/2=4.5 orta değer 4. indis 15'dir.

C++ - Eklemeli Sıralama (Insertion Sort)

19 Ağustos 2017

Eklemeli sıralama, sıralama algoritmalarından biridir. Karmaşıklığı O(n²)'dir. Diğer sıralama algoritmalarına göre bazı avantajları aşağıda sıralanmıştır.
  • Kararlı bir sıralama algoritmasıdır.
  • Karmaşıklığı O(n²) olan seçmeli sıralama ve kabarcık sıralaması gibi sıralama algoritmalarından daha verimlidir.
  • Sıralanacak dizi için ek bir bellek alanı gerektirmez.