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. //ここを書く
  23. int s;
  24. for(int g=2;g<n;g++){
  25. s=a[g];
  26. for(int y=1;y<n;y++){
  27. if(a[y-1]<s){
  28. if(s<a[y]){
  29. for(int o=g;o>y;o--)
  30. a[o]=a[o-1];
  31. swap(&s,&a[y]);
  32. }
  33. }else{
  34. if(a[0]>s){
  35. for(int o=g;o>0;o--)
  36. a[o]=a[o-1];
  37. swap(&s,&a[0]);
  38. }
  39. }
  40. }
  41. }
  42. }
  43. int main(void){
  44. int n,i;
  45. int *v;
  46. scanf("%d",&n);
  47. v = (int*)malloc(sizeof(int)*n);
  48. if(v==NULL){
  49. printf("ERROR\n");
  50. return -1;
  51. }
  52. for(i=0;i<n;i++){
  53. scanf("%d",&v[i]);
  54. }
  55. InsertionSort(v,n);
  56. printA(v,n);
  57. free(v);
  58. return 0;
  59. }
  60.  
Success #stdin #stdout 0s 5308KB
stdin
8
21 55 5 13 8 2 34 3
stdout
2 3 5 8 13 21 55 13