Пример. Сортировка по возрастанию массива A из N целых чисел включением с двоичным поиском.
program Sort_Include2;
var A:array[1..100] of integer;
N,i,k,x,c,left,right : integer;
begin
write('количество элементов массива '); read(N);
read(A[1]); {for i:=1 to n do read(A[i]);}
{k - количество элементов в упорядоченной части массива}
for k:=1 to n-1 do
begin
read(x); {x:=A[k+1];}
left:=1; right:=k;
{левая и правая граница фрагмента для поиска}
while left<right do
{двоичный поиск последнего вхождения}
begin
c:=(left+right+1) div 2;
{середина с округлением в большую сторону}
if x>=A[c] then left:=c
{берем правую половину с серединой}
else right:=c-1; {берем левую половину без середины}
end;
if x>=A[left] then left:=left+1;
{сдвигаем на 1 вправо часть массива, освобождая место
для включения x}
for i:=k downto left do A[i+1]:=A[i];
A[left]:=x;
end;
for i:=1 to n do write(A[i],' '); {упорядоченный массив}
end.