// Find the minimum of an array using pointers
int min(int *array, int SIZE) {
int min = *array;
for(int *p = array+1; p < array+SIZE; p++)
if (*p < min)
min = *p;
return min;
}
// Sort an array using pointers
void sort(int *array, int SIZE) {
for(int *left = array; left < array+SIZE; left++)
for(int *right = left+1; right <= array+SIZE; right++)
if (*right < *left)
swap(left, right);
}
// Find an element in an array
// Return true/false if element is present or not
int contains(int *array, int SIZE, int target)
int *low = array;
int *mid = array+SIZE/2;
int *high = array+SIZE-1;
while (low < high) {
if (*mid < target)
low = mid;
else if (*mid == target)
return 1;
else
high = mid;
}
return 0;
}
// Sort an array of STRINGS.
// Remember that each string is itself an array of char
int sort_strings(char *(array[]), int SIZE) {
for(char *left = &array[0]; left < &array[SIZE]; left++)
for(int *right = left+1; right <= array[SIZE]; right++)
if (strcmp(left, right) > 0)
string_swap(left, right);
}
void string_swap(char *left, char *right) {
char tmp[MAX_SIZE];
strcpy(tmp,left);
strcpy(left, right);
strcpy(right, tmp);
}