“ ข้อมูลที่ไม่ใช่ทางพยาธิวิทยา” หมายความว่าอะไร?


14

ฉันเข้าคลาสอัลกอริทึมบน Coursera ศาสตราจารย์ในวิดีโอเกี่ยวกับตารางแฮชกล่าวว่า

สิ่งที่เป็นจริงคือสำหรับข้อมูลที่ไม่ใช่ทางพยาธิวิทยาคุณจะได้รับการดำเนินการเวลาคงที่ในตารางแฮชที่นำมาใช้อย่างเหมาะสม

"ข้อมูลที่ไม่ใช่ทางพยาธิวิทยา" หมายความว่าอะไร? คุณยกตัวอย่างได้บ้าง

คำตอบ:


15

ข้อมูลทางพยาธิวิทยาควรเป็นข้อมูลที่ทำให้สิ่งต่าง ๆ ผิดพลาดอย่างใดอย่างหนึ่งสำหรับการคำนวณของคุณ มันสามารถเรียกว่า พยาธิวิทยาเมื่อหายากในการใช้งานจริงเพื่อให้สิ่งต่าง ๆ ใช้งานได้เป็นส่วนใหญ่ บางครั้งสิ่งนี้สามารถทำให้แม่นยำยิ่งขึ้นในเชิงคณิตศาสตร์ (ตัวอย่างเช่นกับความน่าจะเป็น) แต่การใช้คำทางพยาธิวิทยามักไม่เป็นทางการ

ตัวอย่างเช่นสลัดมะเขือเทศและซอสมะเขือเทศเป็นอาหารที่ยอดเยี่ยมยกเว้นคนที่มีพยาธิสภาพหมายถึงคนที่แพ้มะเขือเทศ มันสามารถฆ่าได้จริงในบางกรณี แต่คนที่แพ้มะเขือเทศนั้นหายากมากดังนั้นอาหารมะเขือเทศจึงถือว่ายอดเยี่ยมยกเว้นในกรณีทางพยาธิวิทยา

O(n2)O(nLGn)O(nLGn)O(LGn)O(n) สำหรับการจัดเรียงผสาน

O(n2)


1
นอกเหนือจากการเรียงลำดับมันเป็นสิ่งสำคัญที่การรวมกันนั้นมีความเสถียรในขณะที่การเรียงอย่างรวดเร็วไม่ได้
wchargin

11

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

hash("abcd") = 'a' + 'b' + 'c' + 'd'ตัวอย่างเช่นถ้าฟังก์ชันแฮชของคุณจะเพิ่มตัวละครด้วยกัน จากนั้นข้อมูลทางพยาธิวิทยาจะมีลักษณะดังนี้:

{"abcd", "dcba", "cbda", ...}. การเรียงสับเปลี่ยนของ"abcd"จะแฮชไปยังตำแหน่งเดียวกันดังนั้นคุณจะจบลงด้วยรายการเชื่อมโยงที่คุณพยายามหลีกเลี่ยงในครั้งแรก

ข้อมูลที่ไม่ใช่พยาธิวิทยาคือข้อมูลที่ไม่ใช่พยาธิวิทยา


-1

อีกวิธีหนึ่งในการคิดเกี่ยวกับสิ่งนี้: คีย์แฮชเป็นเหมือน "ถังขยะ" ที่มีข้อมูล ใครจะคาดหวัง / หวังว่าข้อมูลจะถูกกระจายอย่างเท่าเทียมกันระหว่างถังขยะทั้งหมด "สมดุล" สำหรับข้อมูลที่ไม่ใช่ทางด้านจิตใจแต่ละถังมี / มีจำนวนข้อมูลโดยประมาณเท่ากัน ถ้าข้อมูลนั้นเป็นพยาธิวิทยา (อัลกอริธึมการแฮชคีย์ของ WRT) ข้อมูลทั้งหมด "กองพะเนิน" ในถังขยะที่น้อยลงและถังขยะบางแห่งมีน้อยกว่ามาก สิ่งนี้ไม่มีประสิทธิภาพเนื่องจากเวลาการค้นหาเพิ่มขึ้น (และประสิทธิภาพจะลดลง / เปลี่ยนเป็นการค้นหารายการที่ไม่เรียงลำดับ) เมื่อเติมถังขยะขนาดใหญ่ขึ้น โปรดทราบว่าการเปลี่ยนอัลกอริธึมการแปลงคีย์สามารถเปลี่ยนข้อมูลจาก "พยาธิวิทยา" เป็น "ไม่ใช่พยาธิวิทยา" หรือในทางกลับกันดังนั้นความสำคัญของอัลกอริทึมการแปลงแป้นพิมพ์

นอกจากนี้ยังมีอัลกอริธึมอื่น ๆ อีกมากมายที่ความแตกต่างของ "พยาธิวิทยา vs nonpathological" อาจถูกนำไปใช้โดยทั่วไปกับข้อมูล "พยาธิวิทยา" ที่ทำให้อัลกอริทึมทำงานในกรณีที่แย่กว่านั้น (เช่นแนวคิดที่ใช้กับ ตามที่คุณเห็นแนวคิดทางสถิติ สำหรับปัญหาเดียวกันข้อมูลที่เป็น "พยาธิวิทยา" สำหรับอัลกอริทึมหนึ่งอาจไม่ใช่ "พยาธิวิทยา" สำหรับอีกอัน เป็นต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.