int Search(ElementType *arr, int size, ElementType key) {
int low = 0, high = size - 1, mid = (low + high) / 2;
while (low <= high) {
if (key < arr[mid])
high = mid - 1;
else if (key > arr[mid])
low = mid + 1;
else if (key == arr[mid])
return mid;
mid = (low + high) / 2;
}
return -1;
}
int main() {
int size = 30;
int max = 300;
int *array = GetRandomArray(size, max);
printf("Original ");
PrintArray(array, size);
Sort(array, size);
printf("Sorted ");
PrintArray(array, size);
srand(clock());
int key = rand() % max;
int pos = Search(array, size, key);
if (pos != -1)
printf("Key element %d has been found in position %d of this array...", key, pos);
else
printf("Cannot find key element %d in this sorted array...", key);
return 0;
}