Tìm kiếm tuyến tính (Linear Search) trong C



Linear Search là một giải thuật tìm kiếm rất cơ bản. Trong kiểu tìm kiếm này, một hoạt động tìm kiếm liên tiếp được diễn ra qua tất cả từng phần tử. Mỗi phần tử đều được kiểm tra và nếu tìm thấy bất kỳ kết nối nào thì phần tử cụ thể đó được trả về; nếu không tìm thấy thì quá trình tìm kiếm tiếp tục diễn ra cho tới khi tìm kiếm hết dữ liệu.

Chương trình minh họa Tìm kiếm tuyến tính (Linear Search) trong C

#include <stdio.h>

#define MAX 20

// khai bao mang du lieu
int intArray[MAX] = {1,2,3,4,6,7,9,11,12,14,15,16,17,19,33,34,43,45,55,66};

void printline(int count){
   int i;
	
   for(i = 0;i <count-1;i++){
      printf("=");
   }
	
   printf("=\n");
}

// phuong thuc tim kiem tuyen tinh 
int find(int data){

   int comparisons = 0;
   int index = -1;
   int i;

   // duyet qua tat ca phan tu
   for(i = 0;i<MAX;i++){
	
      // dem so phep tinh so sanh da thuc hien 
      comparisons++;
		
      // neu tim thay du lieu, thoat khoi vong lap
		
      if(data == intArray[i]){
         index = i;
         break;
      }
		
   }   
	
   printf("Tong so phep so sanh da thuc hien: %d", comparisons);
   return index;
}

void display(){
   int i;
   printf("[");
	
   // duyet qua tat ca phan tu 
   for(i = 0;i<MAX;i++){
      printf("%d ",intArray[i]);
   }
	
   printf("]\n");
}

main(){

   printf("Mang du lieu dau vao: ");
   display();
   printline(50);
	
   //Tim kiem vi tri cua 55
   int location = find(55);

   // neu tim thay phan tu
   if(location != -1)
      printf("\nTim thay phan tu tai vi tri: %d" ,(location+1));
   else
      printf("Khong tim thay phan tu.");
}

Kết quả

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Tìm kiếm tuyến tính (Linear Search) trong C

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


giai-thuat-tim-kiem-tuyen-tinh.jsp


Tài liệu giáo viên