คุณลักษณะเฉพาะของ HashMap นั้นแตกต่างจากการพูดต้นไม้ที่สมดุลพฤติกรรมของมันคือความน่าจะเป็น ในกรณีเหล่านี้มักจะมีประโยชน์ที่สุดในการพูดคุยเกี่ยวกับความซับซ้อนในแง่ของความน่าจะเป็นของเหตุการณ์ที่เลวร้ายที่สุดที่เกิดขึ้น สำหรับแผนที่แฮชแน่นอนว่าเป็นกรณีของการชนที่เกี่ยวข้องกับการเกิดแผนที่เต็มรูปแบบ การชนกันค่อนข้างง่ายในการประมาณ
p collision = n / ความจุ
ดังนั้นแผนที่แฮชที่มีองค์ประกอบจำนวนเล็กน้อยก็น่าจะได้รับการชนอย่างน้อยหนึ่งครั้ง สัญลักษณ์ Big O ช่วยให้เราทำสิ่งที่น่าสนใจยิ่งขึ้น สังเกตว่าสำหรับค่าคงที่ใด ๆ คงที่ k
O (n) = O (k * n)
เราสามารถใช้คุณสมบัตินี้เพื่อปรับปรุงประสิทธิภาพของแผนที่แฮช เราสามารถคิดเกี่ยวกับความน่าจะเป็นของการชนได้สูงสุด 2 ครั้ง
p collision x 2 = (n / ความจุ) 2
ต่ำกว่านี้มาก เนื่องจากค่าใช้จ่ายในการจัดการการชนหนึ่งครั้งไม่เกี่ยวข้องกับประสิทธิภาพของ Big O เราจึงพบวิธีปรับปรุงประสิทธิภาพโดยไม่ต้องเปลี่ยนอัลกอริทึมจริง! เราสามารถพูดคุยเรื่องนี้กับ
p collision xk = (n / ความจุ) k
และตอนนี้เราสามารถเพิกเฉยต่อจำนวนการชนโดยพลการบางส่วนและจบลงด้วยความน่าจะเป็นที่จะเกิดการชนน้อยกว่าที่เราคิดไว้ คุณสามารถรับความน่าจะเป็นในระดับเล็ก ๆ โดยเลือก k ที่ถูกต้องโดยไม่ต้องเปลี่ยนการใช้อัลกอริทึมที่แท้จริง
เราพูดถึงเรื่องนี้โดยบอกว่าแผนที่แฮชมีการเข้าถึง O (1) ที่มีความน่าจะเป็นสูง