Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. // exH.c
  2. // ENCM 369 Winter 2017 Lab 1 Exercise H
  3.  
  4. #include <stdio.h>
  5.  
  6. void print_array(const char *str, const int *a, int n);
  7. // Prints the string given by str on stdout, then
  8. // prints a[0], a[1], ..., a[n - 1] on stdout on a single line.
  9.  
  10. void sort_array(int *x, int n);
  11. // Sorts x[0], x[1], ..., x[n - 1] from smallest to largest.
  12.  
  13. int main(void)
  14. {
  15. int test_array[] = { 4000, 5000, 7000, 1000, 3000, 4000, 2000, 6000 };
  16.  
  17. print_array("before sorting ...", test_array, 8);
  18. sort_array(test_array, 8);
  19. print_array("after sorting ...", test_array, 8);
  20. return 0;
  21. }
  22.  
  23. void print_array(const char *str, const int *a, int n)
  24. {
  25. int i;
  26. puts(str);
  27. i=0;
  28. start1:
  29. if (i >= n) goto end1;
  30. printf(" %d", a[i]);
  31. i++;
  32. goto start1;
  33. end1:
  34. printf("\n");
  35. }
  36.  
  37. void sort_array(int *x, int n)
  38. {
  39. // This is an implementation of an algorithm called selection sort.
  40.  
  41. int outer, i, i_min, temp;
  42. outer=0;
  43. start2:
  44. if (outer >= n - 1) goto end2;
  45. i_min = n - 1;
  46. i = n - 2;
  47. start3:
  48. if (i < outer) goto end3;
  49. if (x[i] >= x[i_min]) goto end4;
  50. i_min = i;
  51. end4:
  52. i--;
  53. goto start3;
  54. end3:
  55. temp = x[outer];
  56. x[outer] = x[i_min];
  57. x[i_min] = temp;
  58. outer++;
  59. goto start2;
  60. end2:
  61. ;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement