Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Suggerimenti per ricerca binaria in arraylist - Rubrica

    Ciao ragazzi,

    Invoco di nuovo il Vs aiuto per lo svolgimento di un esercizio di ricerca binaria. Tenterò di spiegarvi il più brevemente e chiaramente possibile l'esercizio e l'impostazione che gli ho dato.

    Si tratta di un esercizio di realizzazione di una semplice rubrica, con dati salvati all'interno di un array parzialmente riempito.

    Oltre a inserimento, eliminazione, ordinamento, ricerca lineare, ho bisogno anche di fare una ricerca binaria di una stringa 'ricerca' in Input.

    Il problema sorge dal fatto che il campo ricerca deve essere sì contenuto nel campo dell'arry, ma non è e non sarà mai uguale. Per intenderci:

    Arraylist contatti {anna 34646364584;annalaura 3468794554; annalisa 03554454; roberto 3456125879; }

    String ricerca ="anna"

    Il dubbio viene dal fatto che se scansiono l'array confrontando la stringa come < o > dell'array, non giungerei mai a trovare nulla di utile poichè la stringa cercata non sarà MAI uguale a quella che mi serve.

    C'è anche il problema che se io trovo la stringa annalaura per esempio, devo poi verificare quelle limitrofe per trovare anche anna e annalisa ?

    Ringrazio tutti per i preziosi suggerimenti che mi darete.

  2. #2
    Se il tuo intento è quello di restituire tutti i contatti che hanno come prefisso la chiave di ricerca, puoi usare il metodo
    boolean startsWith(String prefix)
    della classe java.lang.String

  3. #3

    Suggerimenti per ricerca binaria in arraylist - Rubrica

    Ciao,


    prova a dare uno sguardo alle classe java.util.Arrays

    contiene dei metodi che potrebbero fare a caso tuo. In ogni caso potresti vedere come sia stato implementata da loro.

  4. #4
    Grazie a entrambi.

    Alla fine ho deciso di seguire la strada proposta da Vincenzo, anche se ho dei dubbi per quanto riguarda i risultati multipli.

    Il binarysearch proposto da devio non sembra far al caso mio:-(

    Grazie di nuovo ragazzi.

  5. #5
    Utente di HTML.it L'avatar di yuno
    Registrato dal
    Apr 2010
    Messaggi
    62
    ciao, ti hanno dato tutti degli ottimi consigli, comunque ricordati che per eseguire una ricerca binaria devi tenere la lista sempre ordinata, una volta tenuta ordinata, con iserimenti ordinati, la ricerca binaria diventa possibile e molto facile, devi solo verificare il valore centrale della lista, se non è quello ti sposti dalla parte dove dovrebbe essere, a destra se il valore cercato è più grande a sinistra se è più piccolo, fino a che non lo trovi!


    ps
    alcuni algortimi di ricerca per ottimizzare il risultato medio come costo di ricerca, fanno partire la ricerca in un punto random della lista in modo(quando si ha fortuna) levare dalla ricerca parti maggiori della metà della lista

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.