Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
21
Task/Binary-search/Oz/binary-search-1.oz
Normal file
21
Task/Binary-search/Oz/binary-search-1.oz
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
declare
|
||||
fun {BinarySearch Arr Val}
|
||||
fun {Search Low High}
|
||||
if Low > High then nil
|
||||
else
|
||||
Mid = (Low+High) div 2
|
||||
in
|
||||
if Val < Arr.Mid then {Search Low Mid-1}
|
||||
elseif Val > Arr.Mid then {Search Mid+1 High}
|
||||
else [Mid]
|
||||
end
|
||||
end
|
||||
end
|
||||
in
|
||||
{Search {Array.low Arr} {Array.high Arr}}
|
||||
end
|
||||
|
||||
A = {Tuple.toArray unit(2 3 5 6 8)}
|
||||
in
|
||||
{System.printInfo "searching 4: "} {Show {BinarySearch A 4}}
|
||||
{System.printInfo "searching 8: "} {Show {BinarySearch A 8}}
|
||||
19
Task/Binary-search/Oz/binary-search-2.oz
Normal file
19
Task/Binary-search/Oz/binary-search-2.oz
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
declare
|
||||
fun {BinarySearch Arr Val}
|
||||
Low = {NewCell {Array.low Arr}}
|
||||
High = {NewCell {Array.high Arr}}
|
||||
in
|
||||
for while:@Low =< @High return:Return default:nil do
|
||||
Mid = (@Low + @High) div 2
|
||||
in
|
||||
if Val < Arr.Mid then High := Mid-1
|
||||
elseif Val > Arr.Mid then Low := Mid+1
|
||||
else {Return [Mid]}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
A = {Tuple.toArray unit(2 3 5 6 8)}
|
||||
in
|
||||
{System.printInfo "searching 4: "} {Show {BinarySearch A 4}}
|
||||
{System.printInfo "searching 8: "} {Show {BinarySearch A 8}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue