Algoritmi ajaline keerukus
max=keskmine;
else
min=keskmine+1; // x on ülemises pooles
}
if (x==a[min])
return min;
else
return -1;
}
Ülesanne: Koostada skeemprogramm
põhiprogramm()
algusaeg:= clock(); {määrame töö algusaja}
READ N {sisesta või väärtusta N, massiivi dimensioon}
READ x {sisesta või väärtusta x}
READ a[N] {sisesta või väärtusta massiiv a}
vastus:=kahendotsing(a,N,x) {otsing alamfunktsiooni abil}
WRITE vastus {väljasta leitud elemendi indeks (-1 kui ei leia)}
lopuaeg:= clock(); {määrame töö lõpuaja}
tooaeg:=lopuaeg-algusaeg
WRITE tooaeg
kahendotsing(a,N,x)
min:=0 {alammassiivi esimese elmendi indeks}
max:=N {alammassiivi viimase elmendi indeks}
*W max>min
keskmine:=(min+max)/2 {alammassiivi keskmise elmendi indeks}
x<=a[keskmine]?