Visual Basic.NET - Como se hace una busqueda binaria en VB.NET ??

 
Vista:

Como se hace una busqueda binaria en VB.NET ??

Publicado por Javier (30 intervenciones) el 19/03/2008 19:43:20
Hola nuevamente , quiero saber con un ejemplo como se hace para buscar un elemento en un Arreglo Unidimencional . con la funcion por defecto BinaySearch ( Arreglo, Valor ), ya que intente con un Ej. y se me desborda el arreglo cuando se ejecuta dicha funcion. muestro ejemplo :

odule Module1

Private Alumnos() As String = {" Zabaleta Alfredo ", "Morinico Pablo ", "Mendoza Angelica", " Dirie Juliana ", "Mendoza Frank ", "Alfonzo Javier"}

Sub Main()

Dim Resultado As String
Dim Posicion As Integer

Console.WriteLine("Ingrese el Alumno para la Busqueda : ")
Console.WriteLine()
Resultado = Console.ReadLine()

' Captura si no encuentra Alumno

Try
Posicion = Array.BinarySearch(Alumnos, Resultado)

' Verificacion
Console.WriteLine(" resultado de Posicion BinarySearch : {0}", Posicion)

Console.WriteLine()
Console.WriteLine(" Resultado de la Busqueda : {0} ", Alumnos(Posicion))

Console.WriteLine()
Catch e As IndexOutOfRangeException

Console.WriteLine(" No se encontro el Alumno")

Console.WriteLine()

End Try

Si busco el primero Zabaleta el Indice es - 7 ?¿ );

Labusqueda quequiero hacer en mis Aplicaciones es binaria No lineal !!! Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Como se hace una busqueda binaria en VB.NET ??

Publicado por kdlc (69 intervenciones) el 19/03/2008 20:54:18
antes del binarysearch pon ARRAY.SORT(Alumnos) ...creo que el binary search hace busquedas en un array ordenado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como se hace una busqueda binaria en VB.NET ??

Publicado por Javier (30 intervenciones) el 19/03/2008 21:40:10
Ya Probe y no funciona !! Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como se hace una busqueda binaria en VB.NET ??

Publicado por kdlc (69 intervenciones) el 19/03/2008 22:54:34
Que si funciona hombre!

Imports System
Imports System.Collections.Generic
Module Module1
Sub Main()
Dim alumnos() As String = { _
"Zabaleta Alfredo", _
"Morinico Pablo", _
"Mendoza Angelica", _
"Dirie Juliana", _
"Mendoza Frank", _
"Alfonso Javier"}

Console.WriteLine()
For Each alumno As String In alumnos
Console.WriteLine(alumno)
Next

Console.WriteLine(vbLf & "Sort")
Array.Sort(alumnos)

Console.WriteLine()
For Each alumno As String In alumnos
Console.WriteLine(alumno)
Next

Dim index As Integer
Dim resultado As String
Console.WriteLine("Ingrese el Alumno para la Busqueda : ")
Console.WriteLine()
resultado = Console.ReadLine()

' Captura si no encuentra Alumno
Try
Console.WriteLine(vbLf & "BinarySearch :'" & resultado & "'")
index = Array.BinarySearch(alumnos, resultado, New System.Collections.CaseInsensitiveComparer)
' Verificacion
Console.WriteLine()
Console.WriteLine("Resultado de Posicion BinarySearch : {0}", index)
Console.WriteLine()
Console.WriteLine(" Resultado de la Busqueda : {0} ", alumnos(index))
Console.WriteLine()
Catch ex As IndexOutOfRangeException
Console.WriteLine(" No se encontro el Alumno")
Console.WriteLine()
End Try
End Sub

End Module
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como se hace una busqueda binaria en VB.NET ??

Publicado por javier (30 intervenciones) el 20/03/2008 06:16:27
Hola Amigo gracias por el tiempo que medicas.. lo copi tal cual esta y no anda se me desborda el vector .. el resultado de la busqueda es -7. po sierto que es New System.Collections.CaseInsensitiveComparer.

PD probaste si anda ??? Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como se hace una busqueda binaria en VB.NET ??

Publicado por kdlc (69 intervenciones) el 20/03/2008 18:20:44
Claro que lo probe y funciona sin ningun problema. y el System.Collections.CaseInsensitiveComparer es para que ignore mayusculas en la cadena de busqueda.

Pues mi amigo me doy ... ha de ser uno de esos infames errores de tipo EBSAC.

En fin, ojala encuentres la solucion ...

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como se hace una busqueda binaria en VB.NET ??

Publicado por javier (30 intervenciones) el 20/03/2008 19:32:01
Gracias por la Ayuda .. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar