Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define LEN 10
- int find_peak(int *arr, size_t length);
- int main(void) {
- int arr[LEN];
- srand(time(NULL));
- for (size_t i = 0; i < LEN; i++) {
- arr[i] = rand() % 16 + 1;
- }
- printf("[ ");
- for (size_t i = 0; i < LEN; i++) {
- printf("%d ", arr[i]);
- }
- printf("]\n");
- printf("Found peak: %d", find_peak(arr, LEN));
- return 0;
- }
- int find_peak(int *arr, size_t length) {
- size_t i = 0, j = length - 1;
- while (i < j) {
- size_t mid = i + (j - i) / 2;
- if (arr[mid] >= arr[mid + 1] && arr[mid] >= arr[mid - 1])
- return arr[mid];
- if (arr[mid] <= arr[mid + 1])
- i = mid;
- else
- j = mid;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement