Algoritmo a mezza distanza / doppia distanza [chiuso]

0

Carico i dati dalle pagine di un sito web. Il problema è che l'ammontare delle pagine non è chiaro.

Poiché questo processo richiede molto tempo, desidero visualizzare una finestra di dialogo di avanzamento. Per quello devo trovare l'ultima pagina. La mia idea di trovare l'ultima pagina è:

  • Prova a caricare la pagina 1000
    • se esiste la pagina 1000 prova a caricare pagina 2000
      • se esiste la pagina 2000 prova a caricare pagina 4000
      • se la pagina 2000 non esiste prova a caricare la pagina 1500
    • se la pagina 1000 non esiste prova a caricare la pagina 500
      • se esiste la pagina 500 prova a caricare pagina 750
      • se la pagina 500 non esiste prova a caricare pagina 250

e così via .. Quindi, semplicemente raddoppiando / metà della distanza tra le pagine.

Sono bloccato e non riesco a implementare questo algoritmo in C #. Poiché la ricerca di un algoritmo a "mezza distanza / doppia distanza" non ha portato a risultati utili, forse qui qualcuno può dirmi di più.

Esiste un'implementazione di esempio per questo tipo di problema o questo tipo specifico di algoritmo ha un nome?

    
posta g3nuine 19.09.2016 - 18:21
fonte

1 risposta

6

Il nome dell'algoritmo che stai descrivendo è Ricerca esponenziale , noto anche come ricerca raddoppiata o ricerca galoppante.

L'articolo di Wikipedia ha un'implementazione di esempio che potrebbe essere di interesse.

    
risposta data 19.09.2016 - 18:51
fonte

Leggi altre domande sui tag