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

อัลกอริทึมการค้นหาแบบไดนามิกหรือที่เรียกว่าอัลกอริทึม "ค้นหาตามที่คุณพิมพ์" มักใช้เพื่อใช้งานคุณลักษณะต่างๆ เช่น การเติมข้อความอัตโนมัติในแถบค้นหา อัลกอริทึมนี้ให้คำแนะนำแบบเรียลไทม์ตามอินพุตของผู้ใช้และข้อมูลที่มีอยู่

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

  1. เริ่มด้วยชุดข้อมูลที่มีรายการสินค้า(เช่น คำ ชื่อ หรือผลิตภัณฑ์)
  2. ขณะที่ผู้ใช้พิมพ์อักขระแต่ละตัว ให้อัปเดตคำค้นหา
  3. กรองชุดข้อมูลตามคำค้นหาปัจจุบัน
  4. แสดงผลการกรองแก่ผู้ใช้แบบเรียลไทม์

ตัวอย่าง

พิจารณาชุดข้อมูลของภาษาโปรแกรม: ["C", "C++", " Java ", " Python ", " JavaScript ", " Ruby ", " Swift "]

  1. ผู้ใช้พิมพ์ "C" ผลลัพธ์ที่กรอง: ["C", "C++"]
  2. ผู้ใช้พิมพ์ "C++" ผลลัพธ์ที่กรอง: ["C++"]
  3. ประเภทผู้ใช้ " Java " ผลลัพธ์ที่กรอง: [" Java ", " JavaScript "]
  4. ผู้ใช้พิมพ์ "Py" ผลลัพธ์ที่กรอง: [" Python "]
  5. ผู้ใช้ประเภท "Jav" ผลลัพธ์ที่กรอง: [" Java ", " JavaScript "]

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

#include <iostream>  
#include <vector>  
#include <string>  
  
std::vector<std::string> dynamicSearch(const std::vector<std::string>& dataset, const std::string& query) {  
    std::vector<std::string> results;  
  
    for(const std::string& item: dataset) {  
        if(item.find(query) != std::string::npos) {  
            results.push_back(item);  
        }  
    }  
  
    return results;  
}  
  
int main() {  
    std::vector<std::string> programmingLanguages = {"C", "C++", "Java", "Python", "JavaScript", "Ruby", "Swift"};  
    std::string userQuery = "Jav";  
  
    std::vector<std::string> suggestions = dynamicSearch(programmingLanguages, userQuery);  
  
    std::cout << "Suggestions for query '" << userQuery << "': ";  
    for(const std::string& suggestion: suggestions) {  
        std::cout << suggestion << ";  
    }  
    std::cout << std::endl;  
  
    return 0;  
}  

ในตัวอย่างนี้ dynamicSearch ฟังก์ชันใช้ชุดข้อมูลของภาษาโปรแกรมและคิวรีผู้ใช้เป็นอินพุต จะส่งกลับคำแนะนำตามแบบสอบถามปัจจุบัน ขณะที่ผู้ใช้พิมพ์อักขระ อัลกอริทึมจะกรองชุดข้อมูลและแสดงคำแนะนำตามเวลาจริง

หมายเหตุ: การใช้งานจริงของการค้นหาแบบไดนามิกอาจมีความซับซ้อนมากขึ้น ซึ่งเกี่ยวข้องกับเทคนิคต่างๆ เช่น โครงสร้างสามชั้น หรือการจัดทำดัชนีที่มีประสิทธิภาพสำหรับชุดข้อมูลขนาดใหญ่