Minggu, 07 April 2013

Algoritma dan Struktur Data 2

Binery search tanpa menggunakan subrutin
package binarysearch;
public class BinarySearch {
    public static void main(String[] args) {
        System.out.println(" SELAMAT DATANG dalam PROGRAM BINARY SEARCH");
        System.out.println(" ----------------============--------------");
        int[] data = {5, 3, 7, 0, 9, 11, 2};
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i] + " ");
        }
        System.out.println("");
        for (int i = 0; i < data.length - 1; i++) { // SORTING
            for (int j = 0; j < data.length - 1; j++) {  // SORTING
                if (true) { // SORTING
                    int temp = data[j]; // SORTING
                    data[j] = data[j + 1]; // SORTING
                    data[j + 1] = temp; // SORTING
                }
            }
        }
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i] + " ");
        }
        System.out.println("");

        int awal = 0, akhir = data.length, t = 0, cari = 9, indeks = 0;
        for (int i = 0; i < data.length; i++) {
            t = (awal + akhir) / 2;
            System.out.println("Nilai tengahnya sekarang adalah " + data[t]);
            if (cari == data[t]) {
                indeks = t;
                break;}
            else if (cari > data[t]) {
                awal = t;}
            else {
                akhir = t;}
        }
        System.out.println("Angka " + cari + " ada di indeks ke-" + indeks);
    }
}


BINERY SEARCH JIKA MENGGUNAKAN  SUBRUTIN

package binarysearch;
public class subrutinbinerysearch_1 {
    public static void main(String[] args) {
        int[] x = {1, 2, 5, 6, 8,9,10,17,20};
        System.out.println(" ");
        int hasil = cari(9, x);
        if (hasil == -1) {
            System.out.println(" Data yang anda cari tidak di TEMUKAN");
        } else {
            System.out.println(" Data yang anda cari ada di indeks ke - " + hasil);
        }
        // 1. BEST CASE --> terjadi ketika yang di cari ada di tengan . kalau di linear yang di cari ada d awal
        // 2. WORST CASE --> binery terjadi ketika yang di cari ada di awal atau di akhir , linear terjadi ketika yang di cari ada di akhir
    }
    public static int cari(int BilDiCari, int[] p_x) {
        int awal = 0, akhir = p_x.length, t = 0, indeks = -1;

        for (int i = 0; i < p_x.length; i++) {
            t = (awal + akhir) / 2;
            if (BilDiCari == p_x[t]) {
                indeks = t;
                break;
            } else if (BilDiCari > p_x[t]) {
                awal = t;
            } else if (BilDiCari < p_x[t]) {
                akhir = t;
            }
        }

        return indeks;
    }
}
 


Tidak ada komentar:

Posting Komentar