กลับไปหน้าบทความ

อ่าน 2 นาที

รายชื่อสมาคม

ในการเขียนโปรแกรมคอมพิวเตอร์โดยเฉพาะอย่างยิ่งในภาษา Lispรายการเชื่อมโยง (associative list) ซึ่งมักเรียกว่าalistคือรายการแบบเชื่อมโยง (linked list) ที่แต่ละองค์ประกอบ (หรือโหนด )...

รายชื่อสมาคม

รายชื่อสมาคม
พิมพ์อาร์เรย์แบบเชื่อมโยง
ความซับซ้อนของเวลาในรูปแบบสัญกรณ์บิ๊กโอ
การดำเนินการเฉลี่ยกรณีที่เลวร้ายที่สุด
ค้นหา บน) บน)
แทรก O(1) O(1)
ลบ บน) บน)
ความซับซ้อนของพื้นที่
ช่องว่าง บน) บน)

ในการเขียนโปรแกรมคอมพิวเตอร์โดยเฉพาะอย่างยิ่งในภาษา Lispรายการเชื่อมโยง (associative list) ซึ่งมักเรียกว่าalistคือรายการแบบเชื่อมโยง (linked list) ที่แต่ละองค์ประกอบ (หรือโหนด ) ในรายการประกอบด้วยคีย์และค่า รายการเชื่อมโยงจะเชื่อมโยงค่ากับคีย์ ในการค้นหาค่าที่เชื่อมโยงกับคีย์ที่กำหนด จะใช้ การค้นหาแบบเรียงลำดับ : แต่ละองค์ประกอบในรายการจะถูกค้นหาตามลำดับ เริ่มจากหัวรายการ จนกว่าจะพบคีย์ รายการเชื่อมโยงเป็นวิธีที่ง่ายในการใช้งานอาร์เรย์แบบเชื่อมโยงแต่จะมีประสิทธิภาพเฉพาะเมื่อจำนวนคีย์มีน้อยมากเท่านั้น

การดำเนินการ

อาร์เรย์แบบเชื่อมโยง (Associative array)เป็นชนิดข้อมูลนามธรรมที่สามารถใช้เพื่อจัดเก็บชุดคู่คีย์-ค่าและค้นหาค่าที่เชื่อมโยงกับคีย์ที่กำหนดได้ รายการแบบเชื่อมโยง (Association list) เป็นวิธีที่ง่ายในการใช้งานชนิดข้อมูลนี้

เพื่อทดสอบว่าคีย์เชื่อมโยงกับค่าในรายการการเชื่อมโยงที่กำหนดหรือไม่ ให้ค้นหารายการโดยเริ่มจากโหนดแรกและดำเนินการต่อไปจนกว่าจะพบโหนดที่มีคีย์ หรือจนกว่าการค้นหาจะถึงจุดสิ้นสุดของรายการ (ในกรณีนี้จะไม่มีคีย์อยู่) ในการเพิ่มคู่คีย์-ค่าใหม่ลงในรายการการเชื่อมโยง ให้สร้างโหนดใหม่สำหรับคู่คีย์-ค่านั้น ตั้งค่าลิงก์ของโหนดให้เป็นองค์ประกอบแรกก่อนหน้าของรายการการเชื่อมโยง และแทนที่องค์ประกอบแรกของรายการการเชื่อมโยงด้วยโหนดใหม่[ 1 ]แม้ว่าการใช้งานรายการการเชื่อมโยงบางอย่างจะไม่อนุญาตให้มีหลายโหนดที่มีคีย์เดียวกัน แต่การทำซ้ำดังกล่าวไม่เป็นปัญหาสำหรับอัลกอริทึมการค้นหานี้: คีย์ที่ซ้ำกันที่ปรากฏในภายหลังในรายการจะถูกละเว้น[ 2 ]

นอกจากนี้ยังสามารถลบคีย์ออกจากรายการการเชื่อมโยงได้ โดยการสแกนรายการเพื่อค้นหาคีย์ที่ปรากฏแต่ละครั้ง และตัดโหนดที่มีคีย์ออกจากรายการ[ 1 ]การสแกนควรดำเนินต่อไปจนถึงท้ายรายการ แม้ว่าจะพบคีย์แล้วก็ตาม ในกรณีที่คีย์เดียวกันอาจถูกแทรกหลายครั้ง

ผลงาน

ข้อเสียของรายการเชื่อมโยงคือเวลาในการค้นหาคือO ( n )โดยที่nคือความยาวของรายการ[ 3 ]สำหรับรายการขนาดใหญ่ วิธีนี้อาจช้ากว่าเวลาที่ได้จากการแสดงอาร์เรย์แบบเชื่อมโยงเป็นต้นไม้ค้นหาแบบไบนารีหรือตารางแฮชมาก นอกจากนี้ เว้นแต่ว่ารายการจะถูกตัดแต่งเป็นประจำเพื่อลบองค์ประกอบที่มีคีย์ซ้ำกัน ค่าหลายค่าที่เชื่อมโยงกับคีย์เดียวกันจะเพิ่มขนาดของรายการ และทำให้เวลาในการค้นหาเพิ่มขึ้น โดยไม่มีข้อได้เปรียบใดๆ มาชดเชย

ข้อดีอย่างหนึ่งของรายการความสัมพันธ์คือสามารถเพิ่มองค์ประกอบใหม่ได้ในเวลาคงที่ นอกจากนี้ เมื่อจำนวนคีย์มีขนาดเล็กมาก การค้นหารายการความสัมพันธ์อาจมีประสิทธิภาพมากกว่าการค้นหาต้นไม้ค้นหาแบบไบนารีหรือตารางแฮช เนื่องจากความเรียบง่ายในการใช้งานที่มากกว่า[ 4 ]

แอปพลิเคชันและไลบรารีซอฟต์แวร์

ในการพัฒนา Lisp ในช่วงแรก รายการเชื่อมโยงถูกใช้เพื่อแก้ไขการอ้างอิงถึงตัวแปรอิสระในขั้นตอนการทำงาน[ 5 ] [ 6 ]ในแอปพลิเคชันนี้ เป็นเรื่องสะดวกที่จะเพิ่มรายการเชื่อมโยงด้วยการดำเนินการเพิ่มเติม ซึ่งจะย้อนกลับการบวกคู่คีย์-ค่าโดยไม่ต้องสแกนรายการเพื่อหาสำเนาอื่นของคีย์เดียวกัน ด้วยวิธีนี้ รายการเชื่อมโยงสามารถทำงานเหมือนสแต็กทำให้ตัวแปรโลคอล สามารถ บัง ตัวแปรอื่นที่มีชื่อเดียวกัน ได้ชั่วคราวโดยไม่ทำลายค่าของตัวแปรเหล่านั้น[ 7 ]

ภาษาโปรแกรมหลาย ภาษารวมถึง Lisp [ 5 ] Scheme [ 8 ] OCaml [ 9 ]และ Haskell [ 10 ] มีฟังก์ชันสำหรับการ จัดการ รายการการเชื่อมโยงในไลบรารีมาตรฐาน

ดูเพิ่มเติม

  • รายการแบบจัดระเบียบตนเอง (Self-organizing list)คือกลยุทธ์ในการจัดเรียงลำดับคีย์ในรายการแบบเชื่อมโยงใหม่ เพื่อเพิ่มความเร็วในการค้นหาคีย์ที่เข้าถึงบ่อย
  • รายการคุณสมบัติ หรือ plist ซึ่งเป็นโครงสร้างข้อมูลอาร์เรย์แบบเชื่อมโยงอีกแบบหนึ่งที่ใช้ใน Lisp [ 11 ] (ไม่ควรสับสนกับรายการคุณสมบัติซึ่งเป็นรูปแบบไฟล์ที่เรียกว่าไฟล์ plist เช่นกัน)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Association_list&oldid=1268543964 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รายชื่อสมาคม

ในการเขียนโปรแกรมคอมพิวเตอร์โดยเฉพาะอย่างยิ่งในภาษา Lispรายการเชื่อมโยง (associative list) ซึ่งมักเรียกว่าalistคือรายการแบบเชื่อมโยง (linked list) ที่แต่ละองค์ประกอบ (หรือโหนด )...

การดำเนินการ

อาร์เรย์ แบบเชื่อมโยง (Associative array) เป็น ชนิดข้อมูลนามธรรม ที่สามารถใช้เพื่อจัดเก็บชุด คู่คีย์-ค่า และค้นหาค่าที่เชื่อมโยงกับคีย์ที่กำหนดได้ รายการแบบเชื่อมโยง (Association list) เป็นวิธีที่ง่ายในการใช้งานชนิดข้อมูลนี้

ผลงาน

ข้อเสียของรายการเชื่อมโยงคือเวลาในการค้นหาคือ O ( n ) โดยที่ n คือความยาวของรายการ [ 3 ] สำหรับรายการขนาดใหญ่ วิธีนี้อาจช้ากว่าเวลาที่ได้จากการแสดงอาร์เรย์แบบเชื่อมโยงเป็น ต้นไม้ค้นหาแบบไบนารี หรือ ตารางแฮช มาก นอกจากนี้...

แอปพลิเคชันและไลบรารีซอฟต์แวร์

ในการพัฒนา Lisp ในช่วงแรก รายการเชื่อมโยงถูกใช้เพื่อแก้ไขการอ้างอิงถึง ตัวแปรอิสระ ในขั้นตอนการทำงาน [ 5 ] [ 6 ] ในแอปพลิเคชันนี้ เป็นเรื่องสะดวกที่จะเพิ่มรายการเชื่อมโยงด้วยการดำเนินการเพิ่มเติม...