2007-08-22

    二分查找法完整版 - [Algorithms]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://conoon.blogbus.com/logs/7858689.html

    program  jjzx(input,output);

    var

       a:array[1..10] of integer;

       i,j,n,x:integer;

    begin

       writeln('输入10个从小到大的数:');

       for i:=1 to 10 do read(a[i]);

       writeln('输入要查找的数:');

       readln(x);

       i:=1;  n:=10;   j:=trunc((i+n)/2);

       if a[n]

    writeln('查找失败,数组中无此元素!')  

    else

            begin

              repeat

                 if  a[j]>x then

                    begin

                       n:=j;   j:=trunc((i+n)/2)

                    end

                  else

                    begin

                       i:=j+1;   j:=trunc((i+n)/2)

                    end

              until  (a[j]=x) or  (i=j)  ;

              if a[j]=x then

                  writeln('查找成功!位置是:',j:3)

               else

    writeln('查找失败,数组中无此元素!')

        end

    end.

    想想还有其他的方法解决X大于数组中的任何一个数的方法这种情况的方法吗?

     


    收藏到:Del.icio.us




    Tag:
    引用地址:

发表评论

您将收到博主的回复邮件
记住我