|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
[c] ordinamento di una lista
ho una lista
Codice:
struct gene_list {
char *dato;
int inizio, fine;
struct gene_list *next, *prev;
};
come faccio ad applicare un algo di sorting ad una lista?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Vedere: http://en.wikipedia.org/wiki/Merge_sort
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
Quote:
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
a mio parere, senza andare a complicarti la vita con il merge sort (che comunque è asintoticamente migliore) usa un insertion sort, che è più semplice da implementare.
se invece t'interessano le prestazioni migliori, allora il merge sort è più indicato.
__________________
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
mi sono incasinato con quegli algo perchè lavorano sugli indici degli array.... e io non devo solo cambiare un elemento della struttura ma spostare interamente i nodi con i loro elementi.
ho fatto questa porcata Codice:
gene_list *orderList(gene_list *originale){
gene_list *temp, *risultato, *max;
int i=0, lista_lenght=countlist(originale);
risultato=createlist();
while(i<lista_lenght){
max=originale->next;
for(temp = originale->next; temp != originale; temp = temp->next){
if(temp->fine>max->fine)
max=temp;
}
insert(risultato, max->dato, max->inizio, max->fine);
max->fine=-1;
delete(max);
/*max->fine=-1; nel caso in cui mi serva la lista di partenza*/
i++;
}
return risultato;
}
Codice:
struct gene_list {
char *dato;
int inizio, fine;
struct gene_list *next, *prev;
};
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
dato che sulla lista non ci puoi andare dove vuoi l'unico metodo è quello di crearti una nuova lista togliendo un nodo alla volta dalla lista di partenza e inserire in modo ordinato in quella di supporto.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
Quote:
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:57.



















