Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115

    [Algoritmo] Nuovo algoritmo di ricerca

    Salve a tutti. Tutto ciò che presenterò è solo un idea partorita pochi secondi fa e su cui non ho lavorato per niente. Sono uno studente di informatica agli inizi, quindi ho conoscenze davvero scarse sull'argomento. Non prendetemi per stupido se tutto ciò che presenterò è banale, d'altronde è solo una idea che non avrei problemi a vedere smentita immediatamente. Dunque, ciò che vorrei presentare è un nuovo algoritmo di ricerca. Dunque, come funziona sostanzialmente?

    - Condizioni:

    1) E' necessario un VETTORE , o una LISTA, che non abbia una dimensione costante, ma variabile ;

    2) Il contenuto del vettore sia formato da numeri interi ;

    - Esposizione:

    Dati in input una serie di numeri interi, questi vengono memorizzati all'interno di un vettore a dimensione variabile. La particolarità sarà far corrispondere il numero inserito all'indice del vettore. Ad esempio:

    codice:
    Input: 3 - 5 - 1
    Indice 0 del vettore -> Vuoto
    Indice 1 del vettore -> 1
    Indice 2 del vettore -> Vuoto
    Indice 3 del vettore -> 3
    Indice 4 del vettore -> vuoto
    Indice 5 del vettore -> 5
    Quindi potremmo scrivere:

    codice:
    Vett [N] <- Intero
    App <- Intero
    Scrivi "Inserisci un numero intero"
    Leggi App;
    Vett [App] = App;
    In questo modo, per effettuare la ricerca all'interno del vettore potremmo semplicemente fare:

    codice:
    // Vettore già riempito con il criterio precedente
    X <- Intero 
    Scrivi "Inserisci l'elemento da cercare" 
    Leggi X;
    Se (X=Vett[X])
        Scrivi "L'elemento è stato trovato."
    Il concetto di base è questo, ma ci sarebbe tanto da dire. Ora essendo ignorante in materia, in termini di tempo 'posso immaginare' sia più veloce di una ricerca qualunque, anche se non ne ho la certezza.

    - Difetti:

    1) Enorme spreco di locazioni di memoria che non potrebbero essere riempite ;

    2) Non è possibile inserire due volte lo stesso elemento ;

    3) Limite per la tipologia di elementi che posso ricercare .

    - Pregi:

    1) Probabile riduzione di tempo di ricerca ;

    Senza aggiungere altro, anche se i difetti non sono banali, a voi la parola.

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    La tua idea è nota come Hashing e qualcuno ci ha pensato qualche anno fa
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115
    Ah ti ringrazio per avermelo fatto notare, avrei voluto cercare ma non sapevo quale parola chiave inserire su google. Ora allora mi faccio un giro sull'argomento =)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non ho capito bene ... se inserisco il valore 1233208388 devo *comunque* creare tutti gli elementi precedenti ?

    Ma che idea è ? Che avevi fumato ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115
    Si esatto. L'unico pregio sarebbe il tempo di ricerca, cioè basterebbe solo una ricerca.

  6. #6
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Quello che devi fare è creare una funzione che traduca una chiave in un indirizzo unico all'interno della tua struttura dati. Il problema è che ipoteticamente due chiavi diverse dovrebbero avere un indirizzo (posizione) diversa. Nella realtá questo non accade. Si parla di collisioni. Esiston diverse tecniche per gestire queste collisioni (linear probing, double hashing, cuckoo hashing, ...).

    Visto che ti han rubato l'idea dell'hashing, potresti cocnentrarti su una nuova tecnica di gestione delle collisioni, per quanto le attuali siano gia particolarmente efficienti.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

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 © 2024 vBulletin Solutions, Inc. All rights reserved.