VB.NET - CERCARE UN VALORE IN UN
DataGridView ORDINATO
Oggi vi voglio mettere a disposizione il codice di Ricerca Binaria in versione ricorsione, che aiuta moltissimo a trovare un valore mettendoci esattamente Log(n) , invece di leggere tutti i valori e sapere che non c'è, o che è proprio l'ultimo elemento quello che sto cercando, spendendo come tempo n*n = n^2.
ATTENZIONE!! La condizione che questa funzione possa funzionare è che il Database o DataGridView1 sia ORDINATO in maniera CRESCENTE.
La funzione restituisce la riga dove si trova l'elemento cercato della Colnna 0 . Se l'elemento non c'è restituisce -1.
VB.NET - Funzione Ricerca Binaria con ricorsione in un DataGridView .
CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET :
''' <summary>
''' MetodoCerca - /* Funzione per Ricerca Binaria con ricorsione */
''' </summary>
''' <param name="Partenza"></param>
''' <param name="Fine"></param>
''' <param name="Valore"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function MetodoCerca(ByVal Partenza As Integer, ByVal Fine As Integer, ByVal Valore As String) As Integer
If Valore = "" Then
Return -1
End If
If Partenza > Fine Then
Return -1
End If
Dim middle As Integer = 0
middle = (Partenza + Fine) / 2
If Valore < DataGridView1.Item(0, middle).Value Then
Return MetodoCerca(Partenza, middle - 1, Valore)
ElseIf Valore > DataGridView1.Item(0, middle).Value Then
Return MetodoCerca(middle + 1, Fine, Valore)
ElseIf Valore = DataGridView1.Item(0, middle).Value Then
Return middle
End If
Return -1
End Function