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.