Sto scansione di una grande fonte di dati, attualmente di circa 8 milioni di voci, l'estrazione su stringa per ogni voce, che voglio in ordine alfabetico.
Currenlty li inserisce in una matrice quindi ordinare un indice utilizzando qsort()che funziona bene.
Ma per curiosità sto pensando di inserire invece ogni stringa in una struttura di dati che li mantiene in ordine alfabetico come li scruto dall'origine dati, in parte per l'esperienza di emlplementing uno, in parte perché si sentono più veloce senza l'attesa per il tipo di completare dopo la scansione è stata completata (-:
Che struttura di dati sarebbe la più semplice da implementare in C?
AGGIORNARE
Per chiarire, le uniche operazioni devo eseguire stanno inserendo un elemento e l'indice di scarico quando è fatto, vale a dire per ogni articolo nell'ordine originale scaricare un intero che rappresenta l'ordine è in dopo la cernita.
SOMMARIO
- Il più facile da implementare sono alberi binari di ricerca.
- Appartamenti bilanciamento alberi binari sono molto meglio, ma non banale da implementare.
- L'inserimento può essere fatto in modo iterativo, ma in ordine di attraversamento per lo scarico i risultati e post-ordine di attraversamento per l'eliminazione dell'albero quando fatto entrambi richiedono sia la ricorsione o uno stack esplicito.
- Senza implementare il bilanciamento, percorsi di ingresso ordinato si tradurrà nel peggiore dei casi degenere, che è una lista collegata. Questo significa che gli alberi profondi influire gravemente la velocità dell'operazione di inserimento.
- Mescolare un po 'l'ingresso può rompere ordinato di ingresso in modo significativo ed è più facile da implementare che il bilanciamento.













