Linear Search - Tìm kiếm tuyến tính trong C++



| Yêu cầu
Cho mảng một chiều n số nguyên và giá trị x cần tìm.
Sử dụng thuật toán tìm kiếm tuyến tính. Viết chương trình giá trị x trong mảng, yêu cầu in ra từng bước thực hiện. Ví dụ:

 

| Code

Prototype


void Input(int[], int&);
void Output(int[], int);
void LinearSearch(int[],int,int);

Hàm nhập


void Input(int A[], int& n)
{
      cout << "\nNhap N: ";
      cin >> n;
      for (int i = 0; i < n; i++)
      {
            cout << "\tNhap A[" << i << "]= ";
            cin >> A[i];
      }
}

Hàm xuất

void Output(int A[] , int n)
{
      cout << "Xuat mang:\n";
      for (int i = 0; i < n; i++)
      {
            cout << "\tA[" << i << "]= " << A[i] << endl;
      }
}


Thuật toán Linear Search

void LinearSearch(int A[], int n, int x)
{
      int i;
      int dem = 0;
      for (i = 0; i < n; i++)
      {
            cout << "I = " << i << ": A[" << i << "] = " << A[i] << ", X = " << x << ". ";
            if (A[i] == x)
            {
                  cout << "Giong. Co X trong mang. Ket thuc." << endl;
                  //return i;
                  dem++;
                  break;

            }
            else if((A[i] != x) && (i < n -1))
            {
                  int t = i + 1;
                  cout << "Khac. Xem xet phan tu tiep theo A[" << t << "]" << endl;
                  dem++;
            }
      }
      if (dem == n-1)
      {
            cout << "Khac. Da xet den phan tu cuoi mang. Khong co X trong mang." << endl;
            dem++;
            //return -1;
      }
      cout << "So buoc so sanh " << dem << endl;
}

Main.cpp

#include <iostream>
using namespace std;
#define MAX 100

int main()
{
      int A[MAX];
      int n, x;
      Input(A, n);
      Output(A, n);
      cout << "\nX = ";
      cin >> x;
      LinearSearch(A, n, x);
      system("pause");
      return 0;
}


Nhận xét