การค้นหาเป็นหนึ่งในฟังก์ชันพื้นฐานที่มีบทบาทสำคัญในการพัฒนาโปรแกรมคอมพิวเตอร์ และหนึ่งในวิธีการค้นหาที่เก่าแก่ที่สุดคือการค้นหาแบบ Sequential Search ซึ่งบางครั้งก็เรียกกันว่า Linear Search การค้นหาแบบนี้เป็นวิธีที่ตรงไปตรงมาและไม่ต้องการข้อมูลที่ถูกจัดเรียงลำดับไว้อย่างเป็นระเบียบ
วันนี้เราจะพาไปรู้จักกับ Sequential Search ในภาษา COBOL, ภาษาโปรแกรมมิ่งที่ถูกใช้งานอยู่ในระบบธุรกรรมและธุรกิจหลายๆ องค์กรจากหลายทศวรรษที่ผ่านมา เราจะดูวิธีการใช้งานพร้อมๆ กับตัวอย่างโค้ดและอธิบายการทำงาน และไม่ลืมที่จะพูดถึง use case ในโลกจริงที่ถูกใช้งาน
บทความนี้เขียนขึ้นอย่างมีชีวิตชีวาพร้อมทั้งการวิจารณ์เชิงตรรกะ และเราหวังว่าคุณจะรู้สึกสนใจในการศึกษาเขียนโปรแกรมพร้อมๆ กับการเรียนที่ Expert-Programming-Tutor (EPT)
การค้นหาแบบ Sequential เริ่มจากตำแหน่งแรกของข้อมูลและจะเคลื่อนไปเรื่อยๆ จนกว่าจะพบข้อมูลที่ต้องการหรือจบลิสต์ มาเริ่มกันที่ตัวอย่างโค้ด COBOL กันเลยทีเดียว
IDENTIFICATION DIVISION.
PROGRAM-ID. SequentialSearch.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMBERS.
05 NUMBER OCCURS 10 TIMES PIC 9(4) VALUE ZEROS.
01 SEARCH-NUM PIC 9(4).
01 I PIC 9(2) VALUE 1.
01 FOUND PIC X VALUE 'N'.
PROCEDURE DIVISION.
BEGIN.
MOVE 10 TO NUMBER (1)
MOVE 20 TO NUMBER (2)
MOVE 30 TO NUMBER (3)
* (... Fill the rest of the array ...)
DISPLAY 'ENTER NUMBER TO SEARCH FOR: '
ACCEPT SEARCH-NUM
PERFORM UNTIL I > 10 OR FOUND = 'Y'
IF NUMBER (I) = SEARCH-NUM THEN
DISPLAY 'NUMBER FOUND AT POSITION ' I
MOVE 'Y' TO FOUND
END-IF
ADD 1 TO I
END-PERFORM.
IF FOUND = 'N' THEN
DISPLAY 'NUMBER NOT FOUND'.
END-IF.
STOP RUN.
ในตัวอย่าง, โค้ดทำการค้นหาตัวเลขที่ผู้ใช้งานป้อนเข้ามาในอาเรย์ `NUMBERS` การค้นหาจะหยุดเมื่อพบตัวเลขหรือผ่านทุกตำแหน่งในอาเรย์
1. ค้นหาชื่อในลิสต์ข้อมูลลูกค้า
* ในตัวอย่างนี้, พิจารณาว่า CUSTOMER-LIST เป็นฟายล์ข้อมูลที่มีรายชื่อลูกค้า
2. การค้นหาตัวเลขในล็อตการผลิต
* ถ้ามีอาเรย์หรือฟายล์ที่มีข้อมูลหมายเลขล็อต, สามารถทำ Sequential Search ได้เช่นกัน
3. การหาบรรทัดที่มีคำจากไฟล์ข้อความ
* สามารถอ่านไฟล์ข้อความและค้นหาคำหรือวลีเฉพาะได้ โดยการจับคู่แบบตัวต่อตัวตามบรรทัด
ในทุกตัวอย่าง, การค้นหาเริ่มต้นโดยการตรวจสอบจากตำแหน่งแรกไปยังตำแหน่งสุดท้าย และมีคุณภาพที่เรียบง่ายแต่อาจใช้เวลานานในดาต้าเซ็ตขนาดใหญ่
หลายองค์กรที่ยังใช้ระบบตามมาตรฐานเก่าอาจถูกจำกัดด้วยซอฟต์แวร์และฮาร์ดแวร์ เช่น ธนาคารหรือหน่วยงานราชการที่มีข้อมูลลูกค้าหรือประชากรในระบบ COBOL พวกเขาอาจใช้ Sequential Search เพื่อค้นหารายการหรือเรคคอร์ดจากฐานข้อมูลที่ไม่ได้รับการปรับปรุงเป็นระเบียบ
การค้นหาแบบ Sequential ยังมีประโยชน์ในการค้นหาข้อมูลที่ไม่สม่ำเสมอหรือไม่ค่อยมีการเข้าถึง อีกทั้งยังใช้ในการค้นหาข้อมูลที่อยู่ในที่เก็บข้อมูลชั่วคราวหรือสำหรับการดีบักโปรแกรม
เราที่ EPT เน้นให้นักเรียนเข้าใจพื้นฐานที่แข็งแกร่งซึ่งจะช่วยพัฒนาทักษะในการโปรแกรมต่อไป หากการค้นหารายละเอียดหรือปัญญาในการเรียนรู้ภาษาโปรแกรมเช่น COBOL ดูน่าสนใจ อย่าลืมเข้ามาเรียนรู้กับเราที่ EPT และพบว่าโลกของการเขียนโปรแกรมนั้นกว้างใหญ่และน่าตื่นเต้นแค่ไหน!
จากนั้นเราจะมุ่งเน้นไปที่การให้ความรู้เชิงลึกพร้อมกับการส่งเสริมให้ปฏิบัติจริง ซึ่งจะช่วยให้คุณได้เรียนรู้ทัศนคติการวิเคราะห์พร้อมทั้งการใช้ภาษาโปรแกรมในการแก้ปัญหาอย่างสร้างสรรค์และมีประสิทธิภาพ
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: sequential_search cobol programming_language linear_search data_search algorithm code_example use_case real-world_example programming_basics data_structure computer_program software_development business_application cobol_programming
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM