Selection sort
PROBLEMA
Scrivere un programma che letti da tastiera due array monodimensionali di interi di lunghezza fornita dall’utente:
- stampa a video I due array inseriti dall’utente;
- ordina I due array utilizzando l’algoritmo di ordinamento “selection sort”;
- unisce I due array in un nuovo array;
- stampa a video l’array di cui sopra;
- ordina l’array utilizzando l’algoritmo di ordinamento “selection sort”;
- stampa a video l’array ordinato.
CODICE SORGENTE
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int dimensione_a;
int dimensione_b;
int dimensione_c;
int i, j;
int temp;
printf("Insesci dimensione vettore a: ");
scanf("%i", &dimensione_a);
int a[dimensione_a];
for(i=0;i<dimensione_a;i++){
printf("Inserire elemento numero %i del vettore 'a': ", i+1);
scanf("%i", &a[i]);
}
printf("\n\n\n\n");
printf("Insesci dimensione vettore b:");
scanf("%i", &dimensione_b);
int b[dimensione_b];
for(i=0;i<dimensione_b;i++){
printf("Inserire elemento numero %i del vettore 'b': ", i+1);
scanf("%i", &b[i]);
}
printf("\n\n\n\n");
//stamapa punto 1 vettore a
for(i=0;i<dimensione_a;i++){
printf("Elemento numero %i: %i\n", i+1, a[i]);
}
printf("\n\n\n\n");
//stampa punto 1 vettore b
for(i=0;i<dimensione_b;i++){
printf("Elemento numero %i: %i\n", i+1, b[i]);
}
printf("\n\n\n\n");
//punto 2 vettore a
for (i=0; i<dimensione_a-1; i++){
for (j=i+1; j<dimensione_a; j++){
if (a[j]<a[i]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//punto 2 vettore b
for (i=0; i<dimensione_b-1; i++){
for (j=i+1; j<dimensione_b; j++){
if (b[j]<b[i]){
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
}
//punto 3
dimensione_c=dimensione_a+dimensione_b;
int c[dimensione_c];
for(i=0;i<dimensione_a;i++){
c[i]=a[i];
}
for(i=0;i<dimensione_b;i++){
c[i+dimensione_a]=b[i];
}
//punto 4
for(i=0;i<dimensione_c;i++){
printf("Elemento numero %i: %i\n", i+1, c[i]);
}
printf("\n\n\n\n");
//punto 5
for (i=0; i<dimensione_c-1; i++){
for (j=i+1; j<dimensione_c; j++){
if (c[j]<c[i]){
temp=c[i];
c[i]=c[j];
c[j]=temp;
}
}
}
//punto 6
for(i=0;i<dimensione_c;i++){
printf("Elemento numero %i: %i\n", i+1, c[i]);
}
printf("\n\n\n\n");
system("PAUSE");
return 0;
}