Схема алгоритма
· X сравнивается со средним элементом массива.
Индекс среднего элемента i = (i1+i2)/2, где i1 = 0, i2 = n – 1.
· Если X = A(i), задача решена.
· Если X<A(i), то поиск продолжается в левой половине: i2 = i – 1, i1 не изменяется.
· Если X>A(i), то поиск продолжается в правой половине: i1 = i + 1, i2 не изменяется.
· Искомый элемент отсутствует в массиве, если выполнится условие i2<i1.
Реализовать алгоритм самостоятельно.
Объединение двух массивов с чередованием элементов
Требуется объединить два массива одинакового размера
A = (a0, a1, , an-1 ) и B = (b0, b1, , bn-1) в один массив C = (a0, b0, a1, b1,…,an-1, bn-1 ).
Элементами массива С с четными индексами являются элементы массива A:
c0 = a0, с2 = a1,…, с2i = a i,…,
элементами с нечетными индексами – элементы массива B:
c1 = b0, c3 = b1…, … , с2i-1 = bi,…
Таким образом, требуется организовать цикл и выполнить операции:
с2i= ai, с2i-1 = bi - 1, для i = 0, 1, 2, , n – 1.
Если массивы имеют разные размеры, то больший массив обрезается по размеру меньшего и меньший массив и урезанный большой объединяются в соответствии с предложенным алгоритмом. Далее оставшиеся элементы большего массива пересылаются подряд.
- Объединение двух упорядоченных массивов в один с сохранением упорядоченности.
Требуется объединить два упорядоченных по убыванию массива A размером n и B размером m в один массив C размером n+m, также упорядоченный.
Дата добавления: 2015-02-07; просмотров: 759;