|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 53
|
[C] quicksort non ricorsivo
Lo sò forse converrebbe molto di più farlo ricorsivo ma a me è stato chiesto di farlo anche iterativo...
quindi cercherei un programma in C che ordini un'array secondo l'algoritmo iterativo del quicksort.... grazie mille.... |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 53
|
up
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
|
potresti simulare le chiamate ricorsive con uno stack oppure applicare l'algoritmo del quicksort senza la funzione cosidetta partition che fa l'ordinamento in loco
in pratica il quicksort ti dice che scegli un elemento, detto perno, quindi individui un elemento di indice i tale che tutti gli elementi prima di i siano minori del perno, in i ci finisca il perno e a destra ci vadano gli elementi maggiori. puoi utilizzare degli array allocati dinamicamente in cui mettere gli elementi a sinistra e destra e poi fonderli non so quanto questo sia conveniente però la cosa più efficente penso che sia quella di utilizzare la funzione partition all'interno di un ciclo in cui vai a scegliere di volta in volta gli estremi dell'array in cui operare altrimenti, al posto di sentire le mie idiozie, traduci in c questa roba http://www.mvps.org/vb/hardcore/html...equicksort.htm che sembra visual basic |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 53
|
ma lo stack è indispensabile in qualsiasi quicksort iterativo???
se dovessi allocarlo dinamicamente che dimensione dovrei dare allo stack? |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 53
|
up
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:10.



















