Hiển thị kết quả từ 1 đến 3 / 3
  1. #1
    Tham gia
    23-06-2009
    Location
    Huyện Gia Bình - Tỉnh Bắc Ninh
    Bài viết
    323
    Like
    0
    Thanked 4 Times in 4 Posts

    binary search(Tìm kiếm nhị phân bằng đệ quy)

    Viết hàm và thủ tục đệ quy bài toán tìm kiếm nhị phân
    Quote Quote

  2. #2
    Tham gia
    23-06-2009
    Location
    Huyện Gia Bình - Tỉnh Bắc Ninh
    Bài viết
    323
    Like
    0
    Thanked 4 Times in 4 Posts
    Code:
    {Tim kiem nhi phan bang de quy}
    Type mang=array[1..100] of integer;
    Var i,N,dau,cuoi,k:integer;
    A:mang;
    procedure tknp(Var A:mang;dau,cuoi,k:integer);
    Var  giua:integer;
    Begin
     giua:=(dau+cuoi) div 2;
     IF A[giua]=k then
     Begin
     write('chi so',giua);
     Readln;
     Exit;
     End;
     If dau>cuoi then
     Begin
     write('Khong tim thay');
     Exit;
     End;
     if A[giua]>k then cuoi:=giua-1 else dau:=giua+1; tknp(A,dau,cuoi,k);
    End;
    BEGIN
    write('Nhap vao so nguyen duong N:');Readln(N);
    For i:=1 to N do
     Begin
       write('A[',i,']=');
       Readln(A[i]);
     End;
     dau:=1;cuoi:=N;
     write('Nhap vao so k:'); Readln(k);
    tknp(A,dau,cuoi,k);
    Readln
    End.

  3. #3
    Tham gia
    23-06-2009
    Location
    Huyện Gia Bình - Tỉnh Bắc Ninh
    Bài viết
    323
    Like
    0
    Thanked 4 Times in 4 Posts
    Code:
    {hàm đệ quy tìm kiếm nhị phân}
    {Tim kiem nhi phan bang de quy}
    {Tim kiem nhi phan bang de quy}
    Type mang=array[1..100] of integer;
    Var t,i,N,dau,cuoi,k,cs:integer;
    A:mang;
    function tknp(A:mang;dau,cuoi,k:integer):Integer;
    Var  giua:integer;
    Begin
     giua:=(dau+cuoi) div 2;
     IF A[giua]=k then
       Begin
         tknp:=giua;
         Exit;
        End;
        If dau>cuoi then
          Begin
           tknp:=0;
           Exit;
          End;
     if A[giua]>k then cuoi:=giua-1 else
     dau:=giua+1; tknp:=tknp(A,dau,cuoi,k);
    End;
    BEGIN
     write('Nhap vao so nguyen duong N:');Readln(N);
      For i:=1 to N do
       Begin
         write('A[',i,']=');
         Readln(A[i]);
       End;
      dau:=1;cuoi:=N;
      write('Nhap vao so k:'); Readln(k); t:=tknp(A,dau,cuoi,k);
       If t=0 then write('Khong tim thay')
         else write('chi so:',t);
    Readln
    End.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •