Массив 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
Блок-схема: