Binary Search

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package binarysearch;
import java.util.Scanner;
/**
*
* @author ANGGA
*/
public class binarySearch {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner data=new Scanner(System.in);
byte pilih;
boolean ketemu=false;
int tengah=0;

System.out.println(“___BINARY_SEARCH___”);
System.out.println(“PILIHAN SEARCH :\n1. Integer\n2. Character”);
System.out.print(“Pilih : “);
pilih=data.nextByte();

if(pilih==1){
System.out.print(“Masukkan Jumlah Angka : “);
int[] angka=new int[data.nextInt()];
for(int i=0;i<angka.length;i++){
System.out.print(“Masukkan Angka ke-“+(i+1)+” : “);
angka[i]=data.nextInt();
}
sorting.integerSorting(angka);

System.out.println(“Setelah diSorting : “);
for(int i=0;i<angka.length;i++){
System.out.print(angka[i]+” “);
}

System.out.print(“Masukkan Angka Yang Akan diCari : “);
int cariAngka=data.nextInt();

int awal=0;
int akhir=angka.length-1;

while(awal<=akhir && !ketemu){
tengah=(awal+akhir)/2;
if(angka[tengah]==cariAngka){
ketemu=true;
}
if(cariAngka<angka[tengah]){
akhir=tengah-1;
}
if(cariAngka>angka[tengah]){
awal=tengah+1;
}
}

if(ketemu=true)
System.out.println(“Angka “+cariAngka+” Ketemu di Index “+tengah);
else
System.out.println(“Angka “+cariAngka+” TIDAK Ketemu”);

}

if(pilih==2){
System.out.print(“Masukkan Jumlah Karakter : “);
char[] karakter=new char[data.nextInt()];
for(int i=0;i<karakter.length;i++){
System.out.print(“Masukkan karakter ke-“+(i+1)+” : “);
try{
karakter[i]=(char)System.in.read();
}
catch(java.io.IOException salah){
}
}
sorting.charSorting(karakter);

System.out.println(“Setelah diSorting : “);
for(int i=0;i<karakter.length;i++){
System.out.print(karakter[i]+” “);
}

System.out.print(“Masukkan karakter Yang Akan diCari : “);
char cariKarakter=’0′;
try{
cariKarakter=(char)System.in.read();
}
catch(java.io.IOException salah){
}
int awal=0;
int akhir=karakter.length-1;

while(awal<=akhir && !ketemu){
tengah=(awal+akhir)/2;
if(karakter[tengah]==cariKarakter){
ketemu=true;
}
if(cariKarakter<karakter[tengah]){
akhir=tengah-1;
}
if(cariKarakter>karakter[tengah]){
awal=tengah+1;
}
}

if(ketemu=true)
System.out.println(“Karakter “+cariKarakter+” Ketemu di Index “+tengah);
else
System.out.println(“Karakter “+cariKarakter+” TIDAK Ketemu”);

}
}

}

 

/////////////////////////// Simpan di file Class yang berbeda dengan nama “sorting”

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package binarysearch;

/**
*
* @author ANGGA
*/
public class sorting {

public static void integerSorting(int array[]){
int sementara;
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1;j++)
if(array[j+1]<array[j]){
sementara=array[j];
array[j]=array[j+1];
array[j+1]=sementara;
}
}
}

public static void charSorting(char array[]){
char sementara;
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1;j++)
if(array[j+1]<array[j]){
sementara=array[j];
array[j]=array[j+1];
array[j+1]=sementara;
}
}
}

}

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s