Реализации алгоритмов/Двоичный поиск: различия между версиями
Содержимое удалено Содержимое добавлено
+C, C++, Java из Википедии |
Заменён пример на Python; добавлен пример на C# |
||
Строка 1:
{{wikipedia|Двоичный поиск}}
==
<source lang="c">
#include <stdio.h>
Строка 74:
</source>
==
<source lang="cpp">
#include <iostream>
Строка 124:
</source>
==
<source lang="csharp">
static int BinarySearch <T> (T[] array, int value, bool descending = false) where T : IComparable
{
int left = 0;
for (int right = array.Length, middle; left < right; )
{
middle = left + (right - left) / 2;
var c = array[middle].CompareTo(value);
if (c == 0)
return middle;
if ((c < 0) == descending)
right = middle;
else
left = middle + 1;
}
return ~left;
}
</source>
==[[w:Java|Java]]==
<source lang="java">
package binarysearch;
Строка 190 ⟶ 210 :
</source>
==
<source lang="plsql">
Строка 235 ⟶ 255 :
<source lang="python">
def binary_search (sorted_list, value, descending=False):
left = 0
while left <
middle = left +
if
return
if
else:
return ~left
</source>
|