Rabu, 13 Mei 2015

Metode Fibonaci search


Public Class Form1
    Dim s As New Stopwatch
    Dim rd As New Random

    Function nearestfibo(ByVal n)
        Dim a As Integer = 0
        Dim b As Integer = 0
        Dim c As Integer = 0

        a = 0
        b = 1
        Do While a + b <= n
            c = a + b
            a = b
            b = c
        Loop
        nearestfibo = c
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim arr(CLng(TextBox1.Text)) As Long
        Dim lgth As Long = CLng(TextBox1.Text)
        Dim temp As Long
        Dim min As Integer = 0
        Dim t As Long
        Dim x As Long = CLng(TextBox2.Text)
        Dim fs As Long = 0
        Dim low As Integer = 0
        Dim high As Integer = 0
        Dim mid As Integer = 0

        For i As Long = 1 To lgth
            arr(i) = rd.Next(100, lgth)
        Next

        For i As Integer = 1 To lgth - 1
            min = i
            For j As Long = i + 1 To lgth
                If arr(j) < arr(min) Then
                    min = j
                End If
            Next
            If min <> i Then
                temp = arr(i)
                arr(i) = arr(min)
                arr(min) = temp
            End If
        Next

        For i As Long = 1 To lgth
            ListBox1.Items.Add(arr(i))
        Next

        s.Start()

        fs = -1
        low = 1
        high = lgth
        Do While low <= high And fs = -1
            mid = low + nearestfibo(high - low + 1) - 1
            If x = arr(mid) Then
                fs = mid
            ElseIf x < arr(mid) Then
                high = mid - 1
            Else
                low = mid + 1
            End If
        Loop

        If fs = -1 Then
            ListBox2.Items.Add("Data Tidak Ditemukan")
        Else
            ListBox2.Items.Add("Data Ditemukan Pada Index ke - " & fs)
        End If

        s.Stop()

        t = s.ElapsedMilliseconds

        Label6.Text = t & " ms"

    End Sub
End Class

4 komentar:

Unknown mengatakan...

thx berguna bgt gan

Jeddika Ciangga mengatakan...

post ini memudahkan kita untuk mengethaui bilangan fibo

Unknown mengatakan...

ternyata bilangan fibo bisa digunakan untuk metode search
hebat gan

martin mengatakan...

I liked fibonacci masbro...