sort.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5. #include <limits.h>
  6. #include <assert.h>
  7. #define foreach(item, array) \
  8. for(int keep = 1, \
  9. count = 0,\
  10. size = sizeof (array) / sizeof *(array); \
  11. keep && count != size; \
  12. keep = !keep, count++) \
  13. for(item = (array) + count; keep; keep = !keep)
  14. //prototypes
  15. void readFile(FILE *in);
  16. void sortArrayBubble();
  17. void sortArrayInsert();
  18. void printArray();
  19. int getListSize();
  20. int arr[100000];
  21. int main(int argc, char* argv[])
  22. {
  23. FILE *in = stdin;
  24. char* inp;
  25. if(argc > 2)
  26. {
  27. fprintf(stderr, "Usage: %s [<file>]\n", argv[0]);
  28. exit(EXIT_FAILURE);
  29. }
  30. if(argc == 2)
  31. {
  32. in = fopen(argv[1], "r");
  33. if(!in)
  34. {
  35. perror(argv[0]);
  36. exit(EXIT_FAILURE);
  37. }
  38. }
  39. readFile(in);
  40. sortArrayBubble();
  41. printArray();
  42. return 0;
  43. }
  44. void readFile(FILE *in)
  45. {
  46. int i = 0;
  47. while(!feof(in))
  48. {
  49. fscanf(in, "%d",&arr[i]) ;
  50. i++;
  51. }
  52. }
  53. void sortArrayBubble()
  54. {
  55. bool swapped = true;
  56. int temp;
  57. int i = 0;
  58. int arrsize = sizeof(arr)/sizeof(int);
  59. while(swapped)
  60. {
  61. swapped = false;
  62. for(i; i < arrsize-1; i++)
  63. {
  64. if(arr[i]>arr[i+1])
  65. {
  66. temp = arr[i];
  67. arr[i] = arr[i+1];
  68. arr[i+1] = temp;
  69. swapped = true;
  70. }
  71. }
  72. i = 0;
  73. }
  74. }
  75. void sortArrayInsert()
  76. {
  77. int out[100000];
  78. int i = 0;
  79. int o = 0;
  80. for(i; i < 100000; i++)
  81. {
  82. }
  83. }
  84. void printArray()
  85. {
  86. foreach(int *v, arr) {
  87. printf("%d\n", *v);
  88. }
  89. }
  90. int getListSize(FILE *in)
  91. {
  92. int i = 0;
  93. while(!feof(in))
  94. {
  95. i++;
  96. }
  97. return i;
  98. }