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