Binary search: Difference between revisions
Content added Content deleted
(→{{header|Zig}}: Add recursive example with slices) |
m (→{{header|Zig}}: unify) |
||
Line 8,011: | Line 8,011: | ||
====Recursive==== |
====Recursive==== |
||
<syntaxhighlight lang="zig">pub fn binarySearch(comptime T: type, input: []const T, search_value: T) ?usize { |
<syntaxhighlight lang="zig">pub fn binarySearch(comptime T: type, input: []const T, search_value: T) ?usize { |
||
⚫ | |||
return binarySearchInner(T, input, search_value, @intFromPtr(input.ptr)); |
return binarySearchInner(T, input, search_value, @intFromPtr(input.ptr)); |
||
} |
} |
||
Line 8,018: | Line 8,016: | ||
fn binarySearchInner(comptime T: type, input: []const T, search_value: T, start_address: usize) ?usize { |
fn binarySearchInner(comptime T: type, input: []const T, search_value: T, start_address: usize) ?usize { |
||
if (input.len == 0) return null; |
if (input.len == 0) return null; |
||
⚫ | |||
const mid = (input.len - 1) / 2; |
const mid = (input.len - 1) / 2; |