/* semplice programma di test delle liste ordinate
* si generano dei numeri casuali li si inseriscono
* successivamente si ricercano e infine si rimuovono */
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"lista.h"
int main(int argc, char **argv){
int ii,jj,tt;
type_lista a;
int num;
int esito;
/* inizializzazione */
num=atoi(argv[1]);
srand(clock());
srand(22);
creaLISTA(num);
/* inserimento numeri */
for(ii=0;ii<num;++ii){
printf("%d\r", ii);
inserisciinLISTA(rand()*32000.0f/RAND_MAX);
}
printf("\nInseriti %d numeri\n", elementiinLISTA());
/* ricerca numeri */
tt=0;
for(ii=0;ii<num;++ii){
printf("%d\r", ii);
a=rand()*32000.0f/RAND_MAX;
esito=trovainLISTA(a,&jj);
if(esito==LISTA_OK)
++tt;
}
printf("Ho trovato %d dei %d numeri cercati\n",tt,num);
/* cancellazione numeri */
tt=0;
for(ii=0;ii<num;++ii){
printf("%d\r", ii);
a=rand()*32000.0f/RAND_MAX;
esito=trovainLISTA(a,&jj);
if(esito==LISTA_OK){
++tt;
rimuovidaLISTA(jj);
}
}
printf("Ho rimosso %d dei %d numeri cercati\n",tt,num);
printf("\n");
return 0;
}
/* Performance su Pentium MMX 200MHz con
* lista basata su array di 32000 elementi
*
* time seconds calls name
*
* 66.61 16.40 32000 inserisciinLISTA
* 32.25 7.94 10401 rimuovidaLISTA
* 0.81 0.20 64000 trovainLISTA
* 0.32 0.08 main
* 0.00 0.00 1 creaLISTA
*
* Stesso ma con ottimizzazioni
*
* 56.42 4.04 32000 inserisciinLISTA
* 40.64 2.91 10407 rimuovidaLISTA
* 2.65 0.19 64000 trovainLISTA
* 0.28 0.02 main
* 0.00 0.00 1 creaLISTA
*/