Sha256: 6041abf15070b00c4a34b547714be9b7067c5d8443f3538962743cfb8c74f76f

Contents?: true

Size: 1.11 KB

Versions: 275

Compression:

Stored size: 1.11 KB

Contents

unit uBinarySearch;

interface

type
  BinarySearch = class
  strict private
    class function SearchHelper(input: TArray<Integer>; target: integer; minIndex: integer; maxIndex: integer): integer; static;
  public
    class function Search(input: TArray<Integer>; target: integer): integer; static;
  end;

implementation

class function BinarySearch.SearchHelper(input: TArray<Integer>; target: Integer; minIndex: Integer; maxIndex: Integer): integer;
var middleIndex: integer;
begin
  middleIndex := (minIndex + maxIndex) div 2;

  if (input[middleIndex] = target) then
    result := middleIndex
  else
    if (middleIndex <= Low(input)) or (middleIndex >= High(input)) then
      result := -1
    else
      if input[middleIndex] > target then
        result := SearchHelper(input, target, minIndex, middleIndex - 1)
      else
        result := SearchHelper(input, target, middleIndex + 1, maxIndex);
end;

class function BinarySearch.Search(input: TArray<Integer>; target: integer): integer;
begin
  if length(input) = 0 then
    result := -1
  else
    result := SearchHelper(input, target, Low(input), High(input));
end;

end.

Version data entries

275 entries across 275 versions & 1 rubygems

Version Path
trackler-2.2.1.107 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.106 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.105 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.104 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.103 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.102 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.101 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.100 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.99 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.98 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.97 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.96 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.95 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.94 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.93 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.92 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.91 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.90 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.89 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas
trackler-2.2.1.88 tracks/delphi/exercises/binary-search/uBinarySearchExample.pas