Chuyển đến nội dung chính

[ Search ] Tìm kiếm tuần tự [Code C++]

Thuật toán tìm kiếm tuần tự - Sequential search

Ý tưởng thuật toán: xét dãy số cần tìm có n phần tử: a[0], a[1], a[2], ... , a[n-1]. Giá trị cần tìm là x.
 - Bắt đầu từ khoá đầu tiên, lần lượt so sánh khoá x với khoá tương ứng trong dãy.
 - Quá trình tìm kiếm kết thúc khi tìm được khoá thoả mãn hoặc đi đến hết dãy hoặc gặp điều kiện dừng vòng lặp.

Ví dụ: Cho dãy số a[]={1,25,6,5,2,37,40}; tìm phần tử x=37
Kết quả là tìm thấy x trong dãy.

Cài đặt thuật toán:
Có 2 thuật toán tìm tuần tự trên dãy khoá đầu vào khác nhau. 

[Code Turbo C++]

+ Trên dãy khoá chưa sắp xếp

int SequentialSearch(int x, int a[],int  n){
 int i =1;
  while (i <n &&a[i]!=x)
    i = i+1;
  return (i);  // nếu giá trị trả về là i<=n-1 (tìm thấy), i=n (không tìm thấy)
}

+ Trên dãy khoá đã được sắp xếp

int SequentialSearch (int x, int a[], int n){
  int i =1;
  while (i <=n && a[i]<x) i = i+1;

  if (a[i]==x) return 1;
  else return 0; // giá trị trả về là 1 (tìm thấy), 0 (không tìm thấy)
}

// Đề nghị độc giả viết tiếp các hàm còn lại để thực thi các thuật toán trên.

BÀI ĐỌC NHIỀU

[Java] Hướng dẫn lập trình Java với NetBean [Clip hướng dẫn]

[Đồ họa trong C\C++] Sử dụng các hàm đồ họa thông dụng trong C\C++ [C\C++]

[ C++ ] Tính đa hình, phương thức ảo, lớp trừu tượng trong C++ [Lập trình hướng đối tượng với C++]

[ Sort ] Thuật toán Heap-Sort [Code C++]

[Algorithm] Thuật toán Đệ quy và một số bài toán Đệ quy cơ bản

[Assembly] Tính tổng 2 số nguyên nhỏ hơn 10 [Lập trình hợp ngữ]

[Assembly] Hướng dẫn sử dụng Emu8086 [Lập trình hợp ngữ]

Bài tập +đáp án Lý thuyết đồ họa máy tính

[Thuật toán đồ thị / code C++] Thuật toán Dijkstra tìm đường đi ngắn nhất trên đồ thị G

[ C++ ] Kế thừa trong C++ [Lập trình hướng đối tượng với C++]