69
правок
Изменения
Нет описания правки
=== Псевдокод ===
<code style = "display: inline-block;">
'''function ''' interpolation_search(a : '''int[]''', key : '''int''') <font color=green> //a должен быть отсортирован</font> left = 0 <font color=green> // левая граница поиска (будем считать, что элементы массива нумеруются с нуля)</font> right = a.length - 1 <font color=green> // правая граница поиска</font>
'''while ''' a[left] <tex> \le </tex> key '''and ''' key <tex> \le </tex> a[right] mid = left + (key - a[left]) / (a[right] - a[left]) * (right - left) <font color=green> // индекс элемента, с которым будем проводить сравнение</font> '''if ''' a[mid] == key '''return ''' mid '''if ''' a[mid] < key
left = mid + 1
'''else'''
right = mid - 1
'''if ''' a[left] == key '''return ''' left '''else''' '''return ''' -1 <font color=green>// если такого элемента в массиве нет</font>
</code>