Упражнения на языке C: найдите сводный элемент отсортированного и повернутого массива с помощью двоичного поиска

Массив C: Упражнение 37 с решением

Напишите программу на C, чтобы найти элемент поворота отсортированного и повернутого массива с помощью двоичного поиска.
Элемент поворота — это единственный элемент во входном массиве, который меньше, чем его предыдущий элемент.
Сводной элемент разделяет отсортированный повернутый массив на два монотонно возрастающих массива.

Пример решения:

Код C:

  #include  int findPivotElem (int * arr1, int left_elem, int right_elem) {if (right_elem arr1  [mid_elem + 1]) return mid_elem;  if (mid_elem> left_elem && arr1 [mid_elem] = arr1 [mid_elem]) {вернуть findPivotElem (arr1, left_elem, mid_elem-1);  } else {return findPivotElem (arr1, mid_elem + 1, right_elem);  }} int main () {int я;  int arr1 [] = {14, 23, 7, 9, 3, 6, 18, 22, 16, 36};  int ctr = sizeof (arr1)/sizeof (arr1 [0]);  printf ("Данный массив:"); for (i = 0; i  

Пример вывода:

 Заданный массив: 14 23  7 9 3 6 18 22 16 36 Сводным элементом массива является: 3 

Блок-схема:

Оцените статью
nanomode.ru
Добавить комментарий