Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define DIM 100
- #define MIN 0
- typedef enum{ORDINATO, QUASI_ORDINATO, INV_ORDINATO,CASUALE} inputType;
- void selectionSortIterativo(int array[], int n);
- int generaArray(int dimensione, inputType tipo_schema);
- int main() {
- int i;
- srand(time(NULL));
- inputType tipo;
- int array[DIM], *ptr;
- ptr = &array[DIM];
- /**Opzioni di scelta per l'utente*/
- printf("\n *** Seleziona una voce ***\n\n");
- printf("\n0 - ordinato"
- "\n1 - quasi ordinato"
- "\n2 - inv ordinato"
- "\n3 - casuale\n");
- scanf("%d", &tipo);
- *ptr = generaArray(DIM,tipo);
- return 0;
- }
- void selectionSortIterativo(int array[], int n){
- int i, j,min, val = 0;
- for(i=0;i<=n-2;i++){
- min = i;
- for(j=i+1;j<=n-1;j++){
- if(array[j]<array[min]){
- min = j;
- }
- }
- val = array[min];
- array[min] = array[i];
- array[i] = val;
- }
- }
- int generaArray(int dimensione, inputType tipo_schema){
- int i, val = 0;
- int array[DIM];
- clock_t start,end;
- double t;
- for(i=0;i<DIM;i++){
- array[i] = MIN + rand() % (DIM - MIN +1);
- }
- switch (tipo_schema){
- case ORDINATO:
- for(i=0;i<DIM;i++){
- array[i] = i;
- }
- break;
- case QUASI_ORDINATO:
- for(i=0;i<DIM;i++){
- if(i<=(DIM/2)){
- array[i] = i;
- }
- }
- break;
- case INV_ORDINATO:
- for(i=DIM;i>0;i--){
- array[val] = i;
- val = val+1;
- }
- break;
- case CASUALE:
- for(i=0;i<DIM;i++){
- array[i] = MIN + rand() % (DIM - MIN +1);
- }
- break;
- }
- printf("\nPrima:\n");
- for(i=0;i<DIM;i++){
- printf("\nCella [%d] contenente -> %d\n", i+1, array[i]);
- }
- start = clock();
- selectionSortIterativo(array,DIM);
- end = clock();
- t = ((double)(end - start)) / CLOCKS_PER_SEC;
- printf("\nDopo:\n");
- for(i=0;i<DIM;i++){
- printf("\nCella [%d] contenente -> %d\n", i+1, array[i]);
- }
- printf("\nTempo impiegato dal Selection Sort Iterativo per ordinare %d elementi in modo %d, tempo pari a -> %lf\n", DIM,tipo_schema, t);
- return *array;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement