|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2008
Città: Napoli
Messaggi: 21
|
[C] Insertion sort??
Buongiorno a tutti!
![]() Per domani devo consegnare un paio di esercizi al prof.. tra questi c'è un algoritmo di insertion sort! Ho svolto l'esercizio però in alcuni casi mi da' qualche problema... vi riporto quello che ho fatto! Codice:
#include <stdio.h> #include <stdlib.h> /*Prototipo della function*/ int insertion (int *x, int n); main () { /*Dichiaro le variabili*/ int *a; int n; int i=0; printf ("Inserisci il numero di locazioni dell'array\n"); scanf ("%d", &n); /*Allocazione dinamica dell'array*/ a= (int*)malloc(n*sizeof(int)); /*Riempio l'array*/ for (i=0; i<n; i++) { printf ("Inserisci il valore n.%d\n", i); scanf ("%d", &a[i]); } /*Stampo a video l'array*/ for (i=0; i<n; i++) { printf ("%d) %d\n", i, a[i]); } /*Chiamo la funzione insertion*/ insertion (a, n); /*Stampo a video l'array ordinato*/ printf ("Dopo la chiamata alla funzione il tuo array e' ordinato in questo modo:\n\n"); for (i=0; i<n; i++) { printf ("%d) %d\n", i, a[i]); } system ("pause"); /*Libero la memoria allocata per l'array*/ free (a); } /*Funzione insertion*/ int insertion (int *x, int n) { int i=0; int j=0; int r; /*Inizio primo ciclo iterativo*/ for (i=2; i<n; i++) { r=x[i]; j=i; /*Inizio del secondo ciclo iterativo*/ while (r<x[j-1]) { x[j]=x[j-1]; j=j-1; } x[j]= r; } } ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:37.