Data de publicació: Feb 08, 2017 8:37:41 AM
#include <stdio.h>
#define MAX 100
int main(){
int i, j, k, n, left, right, middle, tmp;
int V[MAX];
printf("N? ");
scanf("%d",&n);
for ( i = 0; i < n; i++ ){
printf("Valor[%d]? ", i);
scanf("%d",&V[i]);
}
//Array before to be sorted
printf("\nArray to be sorted\n");
printf("(%d,%d) ", i, j );
for ( k = 0; k < n; k++) printf("%d, ", V[k]);
printf("\n\n\n");
//Start sorting
for( i = 1; i < n; i++ ){
tmp = V[i];
left = 0;
right = i-1;
while( left <= right ){
middle = ( left + right ) / 2;
if ( tmp < V[middle])
right = middle - 1;
else
left = middle + 1;
}
for (j = i-1; j >= left; j--){
V[j+1]=V[j];
}
V[left] = tmp;
//Printing sorting
printf("(%d,%d) ", i, j );
for ( k = 0; k < n; k++) printf("%d, ", V[k]);
printf("\n");
}
//Array after being sorted
printf("\n\n\n");
printf("Sorted array\n");
printf("(%d,%d) ", i, j );
for ( k = 0; k < n; k++) printf("%d, ", V[k]);
printf("\n");
}
$ ./sort_insert
N? 5
Valor[0]? 5
Valor[1]? 4
Valor[2]? 3
Valor[3]? 2
Valor[4]? 1
Array to be sorted
(5,0) 5, 4, 3, 2, 1,
(1,-1) 4, 5, 3, 2, 1,
(2,-1) 3, 4, 5, 2, 1,
(3,-1) 2, 3, 4, 5, 1,
(4,-1) 1, 2, 3, 4, 5,
Sorted array
(5,-1) 1, 2, 3, 4, 5,