ผลต่างระหว่างรุ่นของ "เซต (โครงสร้างข้อมูล)"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
EmausBot (คุย | ส่วนร่วม)
r2.6.4) (โรบอต แก้ไข: en:Set (abstract data type)
เพิ่มเติมมัลติเซต
บรรทัด 10:
|children=[[ต้นไม้ (โครงสร้างข้อมูล)|ต้นไม้]],[[ตารางแฮช]]
}}
'''เซต''' ({{Lang-en|Set}}) หมายถึง [[แบบชนิดข้อมูลนามธรรม]]ที่ไม่อนุญาตให้ซ้ำกัน แต่ไม่เรียงลำดับสมาชิก เซตจึงถูกนำมาใช้ในการตรวจสอบความซ้ำกันของข้อมูล
 
[[โครงสร้างข้อมูล]]ที่เป็นเซต ได้แก่ [[ต้นไม้ (โครงสร้างข้อมูล)#ต้นไม้พิเศษ|ต้นไม้ค้นหา]]และ[[ตารางแฮช]] เพียงแต่ต้นไม้จะเก็บข้อมูลที่เปรียบเทียบได้ (Comparable) เท่านั้น ส่วนตารางแฮชไม่มีเงื่อนไขนี้
 
== จุดเด่นของเซต ==
เซตมีจุดเด่นในการไม่อนุญาตให้ซ้ำกัน อาจใช้ตรวจสอบการซ้ำกันของข้อมูล นอกจากนั้นแล้วเงื่อนไขการไม่ซ้ำกันนี้ ทำให้การจัดการข้อมูลนั้นจัดการได้ง่าย และเข้าถึงอย่างรวดเร็ว เช่นต้นไม้ค้นหามีความเร็วเป็น [[สัญกรณ์โอใหญ่|O(log n)]]ส่วนตารางแฮชนั้นมีความเร็วในการเข้าถึงเป็น[[สัญกรณ์โอใหญ่|O(1)]]
 
== บริการที่มักจะมี ==
* การเพิ่ม ลบข้อมูล
* การค้นหาข้อมูล
 
== ความเร็วที่ใช้ในการทำงาน ==
เนื่องจากเงื่อนไขที่ไม่อนุญาตให้สมาชิกซ้ำกัน การจัดการจึงอาจทำให้มีความเร็วในการทำงานเพิ่มขึ้นได้ ด้วยการค้นหาบางสมาชิก เช่น ต้นไม้มีการค้นหามีการเปรียบเทียบ (comparable) และตัดการค้นหาสมาชิกบางส่วนที่ไม่ใช่เป้าหมาย ส่วน ตารางแฮชนั้นเพียงแค่ค้นหาแต่สมาชิกที่มี[[ฟังก์ชันแฮช]]เดียวกันเท่านั้น ซึ่งมีจำนวนน้อยมาก
 
== มัลติเซต ==
มัลติเซต {{lang-en|multiset}} คล้าย[[มัลติเซต]]ในคณิตศาสตร์ ซึ่งโครงสร้างข้อมูลนี้เหมือนโคตรงสร้างข้อมูลเซต ยกเว้นอนุญาตให้สมาชิกซ้ำกันได้
 
* [[ไลบรารีแม่แบบมาตรฐาน]]ของ[[ภาษาซีพลัสพลัส]] ใช้[[ต้นไม้ค้นหาแบบทวิภาคที่มีโครงสร้างปรับสมดุลเองได้ในการสร้างมัลติเซต]]
* [[ไลบรารี]]มาตรฐานของ[[ภาษาไพธอน]]มี [http://docs.python.org/library/collections.html#collections.Counter collections.Counter] ซึ่งทำงานคล้ายมัลติเซต
 
 
== โครงสร้างข้อมูลที่เป็นตาราง ==
* [[Collection]]ที่แก้ไขให้ห้ามเพิ่มข้อมูลที่ซ้ำกัน แต่จะเข้าถึงข้อมูลได้ช้า
* [[ต้นไม้ (โครงสร้างข้อมูล)#ต้นไม้พิเศษ|ต้นไม้ค้นหา]]
* [[ตารางแฮช]]