جستجو دودویی و ترتیبی وی بی .نت

جهت طرح ابهامات و مشکلات درسی خود به این بخش مراجعه نمایید

مدیر انجمن: rosa_127

قفل شده
felfel_namaki
کاربر ساده
کاربر ساده
پست: 58
تاریخ عضویت: یک‌شنبه 27 مرداد 1387, 7:23 pm

جستجو دودویی و ترتیبی وی بی .نت

پست توسط felfel_namaki » پنج‌شنبه 8 مرداد 1388, 4:50 am

سلام بروبچ

بچه ها کسی هست جستجو دودویی و ترتیبی آرایه رو تو vb.net بلد باشه بنویسه
دمتون گرم اگه میدونین بزارین که لازم شده مرسی ازتون tof:

آواتار کاربر
reza-1365
كاربر عالي
كاربر عالي
پست: 683
تاریخ عضویت: شنبه 27 مرداد 1386, 2:09 am
محل اقامت: فعلا ایران

Re: جستجو دودویی و ترتیبی وی بی .نت

پست توسط reza-1365 » جمعه 9 مرداد 1388, 12:19 pm

Function BinarySearch(arr As Variant, search As Variant, _
Optional lastEl As Variant) As Long
Dim index As Long
Dim first As Long
Dim last As Long
Dim middle As Long
Dim inverseOrder As Boolean

' account for optional arguments
If IsMissing(lastEl) Then lastEl = UBound(arr)

first = LBound(arr)
last = lastEl

' deduct direction of sorting
inverseOrder = (arr(first) > arr(last))

' assume searches failed
BinarySearch = first - 1

Do
middle = (first + last) \ 2
If arr(middle) = search Then
BinarySearch = middle
Exit Do
ElseIf ((arr(middle) < search) Xor inverseOrder) Then
first = middle + 1
Else
last = middle - 1
End If
Loop Until first > last
End Function

*****************************************************************
امیدوارم به کارت بیاد.
برای تعجیل در ظهور و سلامتی امام زمان (ع) یک صلوات بفرستید.

felfel_namaki
کاربر ساده
کاربر ساده
پست: 58
تاریخ عضویت: یک‌شنبه 27 مرداد 1387, 7:23 pm

Re: جستجو دودویی و ترتیبی وی بی .نت

پست توسط felfel_namaki » جمعه 9 مرداد 1388, 7:38 pm

مرسی دوستان
ببیینین کجای این کد ایراد داره راهنماییم کنین یعنی تصحیحش کنین مرسی

کد: انتخاب همه

Module Module1

    Sub Main()

        ' SERCH BINARY '
        Dim i, s, a(4), low, mid, high As Integer
        Console.WriteLine()
        For i = 1 To 4
            Console.Write(" Enter Number " + i.ToString + ": ")
            a(i) = Console.ReadLine()
        Next
        Console.WriteLine(" ------------------- ")
        Console.Write(" Please Number For Serch :")
        s = Console.Read()
        Console.WriteLine(" ------------------- ")
        low = 0
        high = i - 1
        While (low <= high)
            mid = (low + high) / 2
            If (s = a(mid)) Then
                Console.Write(" peyDa shod " + a(mid).ToString)
            ElseIf(s > a(mid)) Then
                low = mid + 1
            End If


        End While


    End Sub

End Module

قفل شده