Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: [Solved] Hỏi về thuật toán tìm kiếm

  1. #1
    Ngày gia nhập
    07 2008
    Bài viết
    30

    Smile [Solved] Hỏi về thuật toán tìm kiếm

    em đang học CTD liệu của Đỗ xuân lôi trong đó có thuật toán tìm kiếm theo kiểu đệ quy
    tìm 1 từ trong từ điển xem từ đó nằm ở nửa sau hay nửa trước..sau đó tiếp tục chia nửa từ điển đó và gọi lại cách chia tử điển như trên..cho đến khi còn duy nhất 1 trang luc đó hko tách đôi nữa..và bài toán đc thực hiện tìm từ trong trang đó

    ...Vậy bây giờ em cho 1 mảng a[]={1,5,7,9,10,12,14} ]
    tức là nhập vào vị trí chia đôi so sánh với giữa...nếu lớn hơn tìm nửa sau...bé hơn tìm nửa trước...sau đó chia đôi cái nữa đó..cho đến khi = vt đó
    các anh có thể giúp em viết bài này theo kiểu đệ quy không? em viết rùi mà sai quá
    thanks

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Kiểu tìm kiếm chia đôi ra hình như là tìm kiếm nhị phân mà ? ...
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. int binary_search(int a[],int n,int x)
    5. {
    6.     int i,j,k;
    7.     i=0;j=n-1;
    8.     while(i<j)
    9.     {
    10.         k=(i+j)/2;
    11.         if(x>a[k])i=k+1;
    12.         else if(x<a[k])j=k;
    13.         else return k;
    14.     }
    15.     if(a[i]!=x)return -1;
    16.     return i;
    17. }
    18. //đệ quy
    19. int binary_search(int a[],int ct,int cd,int x)
    20. {
    21.     int k=(ct+cd)/2,v;
    22.  
    23.     if(ct>=cd)
    24.         if(a[ct]!=x)return -1;
    25.         else return ct;
    26.  
    27.     if(x>a[k]) v=binary_search(a,k+1,cd,x);
    28.     else
    29.         if(x<a[k]) v=binary_search(a,ct,k,x);
    30.         else v=k;
    31.  
    32.     return v;
    33. }
    34.  
    35. void main()
    36. {
    37.     clrscr();
    38.     int a[8]={1,2,3,4,5,6,7,8};
    39.     int x=7;
    40.     printf("Vi tri cua x trong a[] la: %d",binary_search(a,8,x));
    41.     printf("\nVi tri cua x trong a[] la: %d",binary_search(a,0,7,x));
    42.     getch();
    43. }
    Đã được chỉnh sửa lần cuối bởi 6220119 : 17-09-2008 lúc 07:59 PM.
    code ra gió bão

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Trích dẫn Nguyên bản được gửi bởi thanhlinhhue Xem bài viết
    em đang học CTD liệu của Đỗ xuân lôi trong đó có thuật toán tìm kiếm theo kiểu đệ quy
    tìm 1 từ trong từ điển xem từ đó nằm ở nửa sau hay nửa trước..sau đó tiếp tục chia nửa từ điển đó và gọi lại cách chia tử điển như trên..cho đến khi còn duy nhất 1 trang luc đó hko tách đôi nữa..và bài toán đc thực hiện tìm từ trong trang đó

    ...Vậy bây giờ em cho 1 mảng a[]={1,5,7,9,10,12,14} ]
    tức là nhập vào vị trí chia đôi so sánh với giữa...nếu lớn hơn tìm nửa sau...bé hơn tìm nửa trước...sau đó chia đôi cái nữa đó..cho đến khi = vt đó
    các anh có thể giúp em viết bài này theo kiểu đệ quy không? em viết rùi mà sai quá
    thanks

    bạn đang muốn hỏi thuật tìm kiếm gì ?
    tài liều và hướng dẫn trong diễn đàn rất nhiều cái chi tiết cụ thể, trình bày bằng cả ngôn ngữ pascal lần C, nhất là ebook của thầy lê minh hoàng
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  4. #4
    Ngày gia nhập
    08 2008
    Nơi ở
    homeless
    Bài viết
    15

    Thuật toán tìm kiếm nhị phân chỉ thưc hiện trên mảng đã sắp xếp nha.

  5. #5
    Ngày gia nhập
    07 2008
    Bài viết
    30

    ok thanks all

Các đề tài tương tự

  1. [ Solved ]Hỏi về việc tìm kiếm trong mảng
    Gửi bởi tranphuoctien trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 30-10-2008, 01:31 PM
  2. [Solved] Hỏi về các thuật toán tìm kiếm
    Gửi bởi vodanhxxx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 17-09-2008, 07:07 PM
  3. [ Solved ] Thuật toán tìm kiếm string gần đúng
    Gửi bởi tienlbhoc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 15-09-2008, 07:06 PM
  4. [ Solved ]Tìm kiếm đệ quy trong mảng 1 chiều
    Gửi bởi Mr.Phong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 20-08-2008, 10:53 PM
  5. [ Solved ]Cây nhị phân tìm kiếm cân bằng
    Gửi bởi sunflower0 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 04-06-2008, 01:35 PM

Quyền hạn của bạn

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