Considerare il seguente problema.Separazione stabile per due classi di elementi in un array
Viene fornita una matrice di elementi appartenenti a due classi: rossa o blu. Dobbiamo riorganizzare gli elementi dell'array in modo che tutti gli elementi blu vengano prima (e tutti gli elementi rossi seguono). Il riarrangiamento deve essere fatto in modo stabile, il che significa che l'ordine relativo degli elementi blu deve essere preservato (lo stesso vale per quelli rossi).
Esiste un algoritmo intelligente che eseguirà il suddetto riorganizzazione sul posto?
Una soluzione non a posto è, ovviamente, semplice.
Una soluzione sul posto ovvia sarebbe applicare qualsiasi algoritmo di ordinamento stabile all'array. Tuttavia, l'uso di un algoritmo di ordinamento a tutti gli effetti su un array sembra intuitivo come un eccessivo, soprattutto tenendo conto del fatto che stiamo trattando solo due classi di elementi.
Tutte le idee sono molto apprezzate.
Grazie. Purtroppo, l'articolo è disponibile solo in abbonamento, ma almeno ora so che è 1) possibile, 2) non banale :) – AnT
È disponibile gratuitamente da CiteSeer: http://citeseerx.ist.psu.edu/ viewdoc/summary? doi = 10.1.1.25.5554 –
@Ants Aasma: Grazie per il collegamento. Ho aggiornato la risposta con questo. –