Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // exH.c
- // ENCM 369 Winter 2017 Lab 1 Exercise H
- #include <stdio.h>
- void print_array(const char *str, const int *a, int n);
- // Prints the string given by str on stdout, then
- // prints a[0], a[1], ..., a[n - 1] on stdout on a single line.
- void sort_array(int *x, int n);
- // Sorts x[0], x[1], ..., x[n - 1] from smallest to largest.
- int main(void)
- {
- int test_array[] = { 4000, 5000, 7000, 1000, 3000, 4000, 2000, 6000 };
- print_array("before sorting ...", test_array, 8);
- sort_array(test_array, 8);
- print_array("after sorting ...", test_array, 8);
- return 0;
- }
- void print_array(const char *str, const int *a, int n)
- {
- int i;
- puts(str);
- i=0;
- start1:
- if (i >= n) goto end1;
- printf(" %d", a[i]);
- i++;
- goto start1;
- end1:
- printf("\n");
- }
- void sort_array(int *x, int n)
- {
- // This is an implementation of an algorithm called selection sort.
- int outer, i, i_min, temp;
- outer=0;
- start2:
- if (outer >= n - 1) goto end2;
- i_min = n - 1;
- i = n - 2;
- start3:
- if (i < outer) goto end3;
- if (x[i] >= x[i_min]) goto end4;
- i_min = i;
- end4:
- i--;
- goto start3;
- end3:
- temp = x[outer];
- x[outer] = x[i_min];
- x[i_min] = temp;
- outer++;
- goto start2;
- end2:
- ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement