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

Đề tài: [ Solved ]Hỏi về việc tìm kiếm trong mảng

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

    Angry [ Solved ]Hỏi về việc tìm kiếm trong mảng

    mong các huynh chỉ với
    em nhập vào 5 phần tử : 1 2 3 4 5
    sau do nhap vao : 5
    xuat ra man hinh la tim thay 5


    Type Tiếng Việt có dấu, nếu còn tiếp tục type không dấu tui sẽ xóa bài của cậu !
    Đã được chỉnh sửa lần cuối bởi rox_rook : 30-10-2008 lúc 02:28 PM.

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    nếu mảng đã sắp xếp trước thì tìm kiếm nhị phân,nếu chưa sắp xếp thì cứ vét cạn mà chơi

  3. #3
    Ngày gia nhập
    10 2008
    Nơi ở
    Hà Nội
    Bài viết
    0

    Bạn nói rõ đề bài chút.Tôi mới có thể giúp bạn được.
    Chúng ta sẽ là một gia đình hạnh phúc.Cố lên!Cố Lến!Cố Lên Mèo Hen!

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    mong các huynh chỉ với
    em nhập vào 5 phần tử : 1 2 3 4 5
    sau do nhap vao : 5
    xuat ra man hinh la tim thay 5
    Bạn duyệt mảng, so sánh từng giá trị của mảng với số cần tìm, nếu đúng in ra tìm thấy, dựng cờ, kết thúc vòng lặp.

    Kiểm tra cờ để biết có tìm thấy không, nếu không thấy thì in ra không tìm thấy.

    *Cờ là một biến nguyên có với giá trị mặc định nào đó bạn cho là không tìm thấy thường là 0, nếu tìm thấy thì thay đổi giá trị đó thường bằng 1. Kiểm tra cờ sẽ biết tìm thấy hay chưa.

  5. #5
    Ngày gia nhập
    09 2007
    Bài viết
    724

    code tìm kiếm tuần tự:

    C Code:
    1. int Search(int A[], int nA, int keySearch)
    2. {
    3.      int result = 0;
    4.       for(int i=0; i<nA && !result; i++)
    5.       {
    6.            if(A[i] == keySearch)
    7.                   result = 1;
    8.       }
    9.        return result;
    10. }

    code tìm kiếm theo nhị phân (mảng đã có thứ tự tăng dần)

    C Code:
    1. int Search(int A[], int nA, int keySearch)
    2. {
    3.      int m,l=0,r=nA-1;
    4.  
    5.      while(r > l)
    6.      {
    7.           m = (l+r)/2;
    8.  
    9.          if(A[m] == keySearch)
    10.               return m; // tìm thấy tại m
    11.           if(A[m]>keySearch) // tìm nữa phần đầu
    12.               r = m - 1;
    13.            else // tìm phần cuối
    14.               l = m+1;
    15.       }
    16. }

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định [ Solved ]Hỏi về việc tìm kiếm trong mảng

    Code:
    int Search(int A[], int nA, int keySearch)
    {
         int result = 0;
          for(int i=0; i<nA && !result; i++)
          {
               if(A[i] == keySearch)
                      result = 1;
          }
           return result;
    }
    mình nghĩ code để tiếc kiệm thời gian hơn nên return luôn khi gặp trùng nhau
    VD như
    for( ) { if(A[i] == keySearch)
    return 1; }
    return 0;
    vì như vậy đỡ mất công duyệt toàn bộ ( nếu có số cần tìm)

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

  1. [Solved] Hỏi về thuật toán tìm kiếm
    Gửi bởi thanhlinhhue trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 18-09-2008, 08:36 AM
  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 ]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
  4. [ 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
  5. [Solved]tìm kiếm trong SQL server 2000
    Gửi bởi hackerhocyeu trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 1
    Bài viết cuối: 19-04-2008, 10:09 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