อัลกอริทึม การค้นหาเชิงเส้น (Linear Search) ใน C++- คำอธิบาย ตัวอย่าง และโค้ด

อัลกอริทึมการค้นหาเชิงเส้นเป็นวิธีการง่ายๆ ที่ใช้ในการค้นหาองค์ประกอบเฉพาะในรายการ อัลกอริทึมนี้ทำงานโดยการตรวจสอบแต่ละองค์ประกอบในรายการตามลำดับจนกว่าจะพบองค์ประกอบที่ต้องการหรือสำรวจรายการทั้งหมด

มันทำงานอย่างไร

  1. เริ่มจากองค์ประกอบแรกในรายการ
  2. เปรียบเทียบองค์ประกอบปัจจุบันกับค่าเป้าหมาย
  3. หากองค์ประกอบปัจจุบันเท่ากับค่าเป้าหมาย อัลกอริทึมจะยุติและส่งกลับตำแหน่งขององค์ประกอบ
  4. ถ้าไม่ ให้วนซ้ำผ่านองค์ประกอบที่เหลือในรายการ
  5. หากสำรวจรายการทั้งหมดโดยไม่พบองค์ประกอบเป้าหมาย อัลกอริทึมจะส่งกลับค่าที่ระบุว่าไม่พบ

ตัวอย่าง

สมมติว่าเรามีรายการจำนวนเต็มและเราต้องการหาหมายเลข 34 ในรายการ

รายการ: {12, 45, 67, 89, 34, 56, 23, 90}

  1. เริ่มที่องค์ประกอบแรก: 12. ไม่ใช่ตัวเลขที่ต้องการ.
  2. ย้ายไปยังองค์ประกอบถัดไป: 45 ไม่ใช่ตัวเลขที่ต้องการ
  3. ดำเนินการต่อด้วยองค์ประกอบที่เหลือ: 67, 89, 34 องค์ประกอบ 34 ตรงกับหมายเลขที่ต้องการ
  4. อัลกอริทึมจะยุติและส่งกลับตำแหน่ง 34 ซึ่งเป็น 4

ตัวอย่างโค้ดในภาษา C++

#include <iostream>  
#include <vector>  
  
int linearSearch(const std::vector<int>& arr, int target) {  
    for(int i = 0; i < arr.size(); ++i) {  
        if(arr[i] == target) {  
            return i;  
        }  
    }  
    return -1;  
}  
  
int main() {  
    std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};  
    int target = 34;  
  
    int result = linearSearch(numbers, target);  
  
    if(result != -1) {  
        std::cout << "Element " << target << " found at position " << result << std::endl;  
    } else {  
        std::cout << "Element " << target << " not found in the array" << std::endl;  
    }  
  
    return 0;  
}  

ในตัวอย่างที่ให้มา เราใช้ linearSearch ฟังก์ชันเพื่อค้นหาหมายเลข 34 ในรายการจำนวนเต็ม ผลลัพธ์จะเป็นตำแหน่ง 34 ในรายการ(ตำแหน่งเริ่มต้นจาก 0) หรือ -1 หากไม่พบหมายเลข