-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.java
More file actions
41 lines (33 loc) · 1.55 KB
/
App.java
File metadata and controls
41 lines (33 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
System.out.print("Lütfen 0 ile 100 arasında bir sayı giriniz: ");
int girilenSayi = scanner.nextInt();
System.out.println("Sonuç: " + binarySearch(girilenSayi));
scanner.close();
}
public static int binarySearch(int girilenSayi) {
int altSayi = 0; // Neden 3 değişken? Sınırları bilmezsek ne olur?
int ustSayi = 100;
int ortaSayi = 0;
while (altSayi <= ustSayi) {
ortaSayi = (ustSayi + altSayi) / 2;// hesaplanan sayı sınır geçmesin diye işlemi bu şekilde yaptık.
if (ortaSayi == girilenSayi) {
System.out.println("Tebrikler bildiniz.");
break;
} else if (ortaSayi > girilenSayi) {/*
* tahmin edilen sayı bilmemiz gereken sayıdan büyükse üst sayı sınırını
* tahmin ettiğimiz sayının soluna kaydırırız
*/
ustSayi = ortaSayi - 1;
} else {/*
* aynı üst sınırı yaptığımız gibi tahmin ettiğimiz sayı bulmamız gereken
* sayıdan küçükse alt limiti tahmin ettiğimiz sayının bir sağına kaydırırız.
*/
altSayi = ortaSayi + 1;
}
}
return ortaSayi;
}
}