二分答案

来源:百度知道 编辑:UC知道 时间:2024/06/12 10:35:58
详解而且带解析pascal类的
谢谢

这个?

二分查找

1.二分查找的基本思想:首先将结点按关键字排序,其次将查找值与中间位置的值比较,相等,查找成功;不等,则中间数据大于或小于查找值,无论怎样查找将在一半的数据中查找。

2.例:输入序列数据查找指定值.

程序:

program sxcz;

const n=7;

type

arr=array[1..n] of integer;

var x1,i:integer;

a:arr;

place:integer;

procedure paixv(var r:arr;m:integer);

var k,j,i,t:integer;

begin

k:=m;

while k>0 do

begin

j:=k-1;k:=0;

for i:=1 to j do

if r[i]>r[i+1] then

begin t:=r[i];a[i]:=r[i+1];r[i+1]:=t;k:=i;end;

end;

end;

procedure search(r:arr;m,x:integer; var p:integer);

var low,high,mid:integer;

begin

p:=0;low:=1;high:=m;

while low<=high do

begin

mid:=(low+high) div 2;

if x>r[mid] then low:=mid+1 else

if x<r[mid] then high:=mid-1 else