Sto cercando di ordinare una vasta gamma di stringhe (in particolare File.list()
, che non riesco a esternare o ridurre ulteriormente) senza utilizzare [molta] memoria extra.Come si esegue un ordinamento di array efficiente in memoria in java?
Arrays.sort()
dice che fa un ordinamento di unione e wikipedia dice che alcune implementazioni allocano la dimensione dell'array originale per la memorizzazione dell'output ordinato. (Questo sembra essere supportato dal riferimento System.arraycopy
nel metodo).
Esiste un algoritmo di ordinamento sul posto che è invece possibile utilizzare per la memoria?
Quanto complesso un algoritmo di ordinamento sei felice di scrivere a mano e vuoi che sia stabile (nel senso che gli elementi di uguale valore appaiono nell'array finale nello stesso ordine in cui sembra abbiano inizio)? Non che tu possa davvero capire la differenza con String a meno che non inizi a guardare "System.identityHashcode" o qualsiasi altra cosa. –