查找:顺序查找、折半查找

// 顺序查找
program SeqSearch;
const Num = 9;
var
        x, i : integer;
        a : array[1 .. Num] of integer;
begin
        readln(x);
        for i := 1 to Num do
                read(a[i]);
        for i := 1 to Num do
                if a[i] = x then
                begin
                        writeln(i);
                        break;
                end;
        if a[i] <> x then
        writeln('Don''t find');
        readln;
        readln;
end.


// 折半查找
program BinSearch;
const Num = 9;
var
        x, i, low, high, mid : integer;
        a : array[1 .. Num] of integer;
begin
        readln(x);
        for i := 1 to Num do
                read(a[i]);
        low := 1;
        high := Num;
        while (low <= high) do
        begin
                mid := (low+high) div 2;
                if x < a[mid] then
                        high := mid-1
                else if x > a[mid] then
                        low := mid+1
                else
                begin
                        writeln(mid);
                        break;
                end;
        end;
        if a[mid] <> x then
                writeln('Don''t find');
        readln;
        readln;
end.
posted @ 2010-01-21 12:00  SmartIOI  阅读(138)  评论(0)    收藏  举报
本站采用CC授权如需转载、引用文章,请务必附上作者及来源处。 Creative Commons License