binary search atau yg biasa disebut pencarian biner adalah pencarian terhadap data yang sudah terurut
contoh :
import javax.swing.JOptionPane;
public class search
{
public static void main(String args[])
{
// diberikan sebuah array data yang sudah terurut naik
int [] data = {2, 5, 8, 10, 14, 32, 35, 41, 67, 88, 90, 101, 109};
// mengambil input berupa kunci yang akan dicari
String keyStr = JOptionPane.showInputDialog("Data yang dicari:");
// menkonversi tipe String dari hasil input ke int agar sesuai dengan
// tipe data pada array
int keyInt = Integer.parseInt(keyStr);
// penanda untuk pencarian, apakah ketemu atau tidak,
// nilai awal adalah false atau tidak ketemu
boolean ketemu = false;
int idxLeft = 0; // variabel untuk index kiri
int idxRight = data.length - 1; // variabel untuk index kanan
int idxMid = -1; // variabel untuk index tengah
// lakukan perulangan ketika tidak ketemu dan
// index kiri kurang dari atau sama dengan index kanan
while(!ketemu && idxLeft <= idxRight)
{
// membagi array menjadi dua bagian, array kiri dan kanan
// dengan index tengah sebagai pemisah
idxMid = (idxLeft + idxRight) / 2;
if(data[idxMid] == keyInt) {
// jika data pada index tengah sama dengan kunci yang dicari
// maka stataus ketemu adalah not false atau true
ketemu = !ketemu;
}
Else
{ // jika tidak maka
if(keyInt < data[idxMid])
{
// jika kunci lebih kecil dari data pada index tengah
// maka set index kanan menjadi index tengah - 1
// dan pencarian beralih ke array kiri
idxRight = idxMid - 1;
}
Else
{
// jika kunci lebih besar dari data pada index tengah
// maka set index kiri menjadi index tengah - 1
// dan pencarian beralih ke array kanan
idxLeft = idxMid + 1;
}
}
}
/* ===========================================
* Pernyataan
* x = ekspresi ? nilai1 : nilai2
* sama artinya dengan pernyataan
* if(ekspresi) {
* x = nilai1;
* } else {
* x = nilai2;
* }
* ===========================================
*/
String pesan = ketemu ? "Data ditemukan pada index : " + idxMid : "Data tidak ditemukan";
// Menampilkan pesan hasil pencarian
JOptionPane.showMessageDialog(null, pesan);
// data selalu ketemu pada posisi index tengah
// apabila tidak ketemu nilai index tengah = -1;
}
}bubble sort
di beri nama "bubble" karena proses pengurutan berangsur-angsur bergerak/berpindah ke posisi yang tepat.jadi bubble sort adalah menempatkan (mengapungkan)nilai terbesar pada elemen paling kanan pada setiap tahap,sehingga nilai di "bubble"kan sebagai hasil proses tiap tahap.
contoh :
public class testBubbleSort
{
//___________________________________________________
public static void main(String[]args)
{
int unsortedArray[]={10,94,2,0,-210,645,-1000,64,1,0};
int i;
System.out.println("sebelum sorting elemen-elemenya adalah :");
for(i=0;i<unsortedArray.length;i++)
{
System.out.print(unsortedArray[i]+"");
}
System.out.println("\n");
bubbleSort(unsortedArray,unsortedArray.length);
System.out.println("setelah sorting elemen-elemennya menjadi :");
for(i=0;i<unsortedArray.length;i++)
{
System.out.print(unsortedArray[i]+"");
}
}
//________________________________________________________
private static void bubbleSort(int[]unsortedArray,int length);
int temp,index,counter;
for(counter=0;counter<lengtth-1;counter++)
{
for(index=0;index<lengtth-1-counter;index++)
{
if(unsortedArray[index]>unsortedArray[index+1])
{
temp=unsortedArray[index];
unsortedArray[index]=unsortedArray[index+1];
unsortedArray[index]=temp;
}
}
}
}
//____________________________________________________________________
Free Template Blogger collection template Hot Deals BERITA_wongANteng SEO theproperty-developer