fork download
  1. // InsertionSort
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. void printA(int a[], int n)
  7. {
  8. int i;
  9. for(i=0;i<n;i++)
  10. {
  11. printf("%d ",a[i]);
  12. }
  13. printf("\n");
  14. }
  15.  
  16. void swap(int* a, int* b)
  17. {
  18. int tmp;
  19. tmp = *a;
  20. *a = *b;
  21. *b = tmp;
  22. }
  23.  
  24. void InsertionSort(int a[], int n)
  25. {
  26. int i, j;
  27. for(i = 1; i < n; i++)
  28. {
  29. for(j = i; j > 0 && a[j-1] > a[j]; j--)
  30. {
  31. swap(&a[j-1], &a[j]);
  32. }
  33. }
  34. }
  35.  
  36. int main(void)
  37. {
  38. int n,i;
  39. int *v;
  40. scanf("%d",&n);
  41. v = (int*)malloc(sizeof(int)*n);
  42. if(v==NULL)
  43. {
  44. printf("ERROR\n");
  45. return -1;
  46. }
  47. for(i=0;i<n;i++)
  48. {
  49. scanf("%d",&v[i]);
  50. }
  51. InsertionSort(v,n);
  52. printA(v,n);
  53. free(v);
  54. return 0;
  55. }
Success #stdin #stdout 0s 5312KB
stdin
8
21 55 5 13 8 2 34 3
stdout
2 3 5 8 13 21 34 55