Skip to content

Commit 8d4bd68

Browse files
Merge pull request #372 from tdtrung17693/feature/bsearch-erlang
Create bsearch.erl
2 parents c5cfd69 + ebf595b commit 8d4bd68

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

Search/BinarySearch/bsearch.erl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-module(bsearch).
2+
-export([binary_search/2]).
3+
4+
binary_search(Element, List) -> binary_search(Element, List, 0, length(List) - 1).
5+
6+
binary_search(_, _, Lower, Higher) when Higher < Lower -> {notfound, null};
7+
binary_search(Element, List, Lower, Higher) ->
8+
Mid = (Lower + Higher) div 2,
9+
case lists:nth(Mid, List) of
10+
Element -> {ok, Mid - 1};
11+
Another when Another < Element ->
12+
binary_search(Element, List, Mid + 1, Higher);
13+
Another when Another > Element ->
14+
binary_search(Element, List, Lower, Mid - 1)
15+
end.
16+

0 commit comments

Comments
 (0)