Tag Archives: ikili arama algoritması

LeetCode Çözümlerİ – 374. Guess Number Higher or Lower

LeetCode içerisinde bulunan “Guess Number Higher or Lower”‘ sorusunun açıklaması ve çözümü. Bu soruda klasik bir “tahmin” sorusunda en etkili yöntem ile tutulan sayının nasıl tahmin edilmesi gerektiği anlatılıyor.

🔥 LeetCode 374. Guess Number Higher or Lower: https://leetcode.com/problems/guess-number-higher-or-lower/

➡️ Problem açıklaması:

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I’ll tell you whether the number is higher or lower.

You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):

-1 : My number is lower

1 : My number is higher

0 : Congrats! You got it!

Example :

Input: n = 10,

pick = 6

Output: 6

➡️ Binary Search Wikipedia [EN]: https://en.wikipedia.org/wiki/Binary_search_algorithm

➡️ İkili arama algoritması Wikipedia [TR]: https://tr.wikipedia.org/wiki/%C4%B0kili_arama_algoritmas%C4%B1

➡️ Algoritma açıklaması:

İkili Arama, sıralı bir dizide, belirli değerin bulunmasına yönelik bir algoritmadır. Bu teknikteki her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin orta değer tarafından ikiye ayrılan kısımlardan hangisinde olduğu kontrol edilir, aranan değeri içeren kısım bir sonraki adımda arama yapılacak dizi olur ve bu sayede arama yapılan listedeki eleman sayısı her adımda yarıya indirilmiş olur. Bu algoritma ile N elemanlı bir dizide en fazla log2(N) karşılaştırma yaparak aranan değerin yerini bulmak mümkündür.