I LOVE VESPA

kebersamaan adalah sesuatu yang dapat memberi dan menerima dalam suka maupun duka.




searching dan sorting dalam pemrograman java

Monday, April 18, 2011

binary search


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