Sto prendendo il comp 2210 (Data Structures) il prossimo semestre e ho svolto i compiti per il semestre estivo che è stato pubblicato online. Fino ad ora, non ho avuto problemi a svolgere i compiti. Dai un'occhiata al compito 4 di seguito, e vedi se puoi darmi un suggerimento su come affrontarlo. Si prega di non fornire un algoritmo completo, solo un approccio. Grazie!Ordinare gli array in ordine crescente riducendo al minimo il "costo"
Un "ordinamento costato" è un algoritmo in cui una sequenza di valori deve essere organizzata in ordine crescente. L'ordinamento è eseguito scambiando la posizione di due valori uno alla volta finché la sequenza non è nell'ordine corretto. Ogni interscambio comporta un costo, che è calcolato come la somma dei due valori coinvolti nello scambio. Il costo totale del tipo è la somma del costo degli interscambi.
Ad esempio, si supponga che la sequenza iniziale sia {3, 2, 1}. Una possibile serie di svincoli è
Interchange 1: {3, 1, 2} interchange cost = 0
Interchange 2: {1, 3, 2} interchange cost = 4
Interchange 3: {1, 2, 3} interchange cost = 5,
given a total cost of 9
Sei scrivere un programma che determina il costo minimo di organizzare una specifica sequenza di numeri.
Modifica: il professore non consente la forzatura bruta.
è consentito scambiare solo valori adiacenti? – Bubblewrap
No, qualsiasi elemento può essere scambiato. – dacman
È chiaramente un problema accademico - nella vita reale, sono i paragoni a costare molto, non gli scambi. In generale, un algoritmo che riduce al minimo il numero di mosse di qualsiasi tipo rischia di fare meglio –