Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,914 questions

51,847 answers

573 users

How to implement ternary search to find a value in a sorted array with Pascal

1 Answer

0 votes
program TernarySearchProgram;

type
    IntArray = array[1..12] of integer;

function TernarySearch(l, r, key: integer; var vec: IntArray): integer;
var
    mid1, mid2: integer;
begin
    while l <= r do
    begin
        mid1 := l + (r - l) div 3;
        mid2 := r - (r - l) div 3;

        if vec[mid1] = key then
        begin
            TernarySearch := mid1;
            exit;
        end;

        if vec[mid2] = key then
        begin
            TernarySearch := mid2;
            exit;
        end;

        if key < vec[mid1] then
            r := mid1 - 1
        else if key > vec[mid2] then
            l := mid2 + 1
        else
        begin
            l := mid1 + 1;
            r := mid2 - 1;
        end;
    end;

    TernarySearch := -1;  { not found }
end;

var
    arr: IntArray;
    index, tosearch: integer;

begin
    { initialize array }
    arr[1] := 1;
    arr[2] := 2;
    arr[3] := 8;
    arr[4] := 14;
    arr[5] := 15;
    arr[6] := 64;
    arr[7] := 78;
    arr[8] := 89;
    arr[9] := 99;
    arr[10] := 100;
    arr[11] := 110;
    arr[12] := 123;

    tosearch := 89;

    index := TernarySearch(1, 12, tosearch, arr);

    if index <> -1 then
        writeln('Element found at index: ', index)
    else
        writeln('Element not found.');
end.




(*
run:

Element found at index: 8

*)

 



answered Jan 12 by avibootz

Related questions

...