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ả:
Đã 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.
Bài học Cấu trúc dữ liệu và giải thuật phổ biến tại vietjack.com:
- Giải thuật tiệm cận - Asymptotic Algorithms
- Cấu trúc dữ liệu mảng (Array)
- Danh sách liên kết - Linked List
- Cấu trúc dữ liệu ngăn xếp - Stack
- Cấu trúc dữ liệu hàng đợi - Queue
- Tìm kiếm tuyến tính - Linear Search
- Tìm kiếm nhị phân - Binary Search
- Sắp xếp nổi bọt - Bubble Sort
- Sắp xếp chèn - Insertion Sort