picchio3a Inviato 17 Gennaio 2005 Segnala Condividi Inviato 17 Gennaio 2005 Se eseguo questo programma # include <stdio.h> void permute(char *str, const int strt, const int len) { int i = strt; int j; char temp; for ( i = strt; i < len-1; ++i ) for ( j = i+1; j < len; ++j ) { temp = str, str = str[j], str[j] = temp; permute(str, i+1, len); temp = str, str = str[j], str[j] = temp; } } int main(void) { char str[] = "1234567890abcd"; printf("nn Attendere....n"); printf("Sto calcolando tutte le permutazioni possibili di una stringa di 14 lettere n"); printf("all'incirca sono 87 miliardi di permutazioni... tempo stimato su un ibook circa 2 ore n"); printf("nn Grazien"); permute(str, 0, sizeof str - 1); printf("n HO FINITO ! an"); return 0; } compilando con gcc in questi modo $ gcc -o p14 p14.c e poi eseguendo il comando: time ./p14 ho tempi di elaborazione molto più lunghi se confrontati con quelli che ottengo se il programma lo compilo ed eseguo su windows_xp su con un qualsiasi pentium 4. Perchè anceh se lo faccio girare su un g5 è cmq lento e il confronto nn rogge???' Link al commento Condividi su altri siti Altre opzioni di condivisione...
Narvill Inviato 17 Gennaio 2005 Segnala Condividi Inviato 17 Gennaio 2005 Originally posted by picchio3aSe eseguo questo programma # include <stdio.h> void permute(char *str, const int strt, const int len)  {   int i = strt;   int j;   char temp;   for ( i = strt; i < len-1; ++i )      for ( j = i+1; j < len; ++j ) {       temp = str, str = str[j], str[j] = temp;       permute(str, i+1, len);       temp = str, str = str[j], str[j] = temp;     } } int main(void) {   char str[] = \"1234567890abcd\";     printf(\"nn Attendere....n\");    printf(\"Sto calcolando tutte le permutazioni possibili di una stringa di 14 lettere n\");   printf(\"all'incirca sono 87 miliardi di permutazioni... tempo stimato su un ibook circa 2 ore n\");   printf(\"nn Grazien\");      permute(str, 0, sizeof str - 1);     printf(\"n     HO FINITO ! an\");   return 0; } compilando con gcc in questi modo $ gcc -o p14 p14.c e poi eseguendo il comando: time ./p14 ho tempi di elaborazione molto più lunghi se confrontati con quelli che ottengo se il programma lo compilo ed eseguo su windows_xp su con un qualsiasi  pentium 4. Perchè anceh se lo faccio girare su un g5 è cmq lento e il confronto nn rogge???' Aggiungi l'opzione -fast, che vedrai che compilando con qualche ottimizzazione va molto meglio. Ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.