DisadvantagesHash tables can be more difficult to implement than self- การแปล - DisadvantagesHash tables can be more difficult to implement than self- ไทย วิธีการพูด

DisadvantagesHash tables can be mor

Disadvantages

Hash tables can be more difficult to implement than self-balancing binary search trees. Choosing an effective hash function for a specific application is more an art than a science. In open-addressed hash tables it is fairly easy to create a poor hash function.

Although operations on a hash table take constant time on average, the cost of a good hash function can be significantly higher than the inner loop of the lookup algorithm for a sequential list or search tree. Thus hash tables are not effective when the number of entries is very small. (However, in some cases the high cost of computing the hash function can be mitigated by saving the hash value together with the key.)

For certain string processing applications, such as spell-checking, hash tables may be less efficient than tries, finite automata, or Judy arrays. Also, if each key is represented by a small enough number of bits, then, instead of a hash table, one may use the key directly as the index into an array of values. Note that there are no collisions in this case.

The entries stored in a hash table can be enumerated efficiently (at constant cost per entry), but only in some pseudo-random order. Therefore, there is no efficient way to efficiently locate an entry whose key is nearest to a given key. Listing all n entries in some specific order generally requires a separate sorting step, whose cost is proportional to log(n) per entry. In comparison, ordered search trees have lookup and insertion cost proportional to log(n), but allow finding the nearest key at about the same cost, and ordered enumeration of all entries at constant cost per entry.

If the keys are not stored (because the hash function is collision-free), there may be no easy way to enumerate the keys that are present in the table at any given moment.

Although the average cost per operation is constant and fairly small, the cost of a single operation may be quite high. In particular, if the hash table uses dynamic resizing, an insertion or deletion operation may occasionally take time proportional to the number of entries. This may be a serious drawback in real-time or interactive applications.

Hash tables in general exhibit poor locality of reference—that is, the data to be accessed is distributed seemingly at random in memory. Because hash tables cause access patterns that jump around, this can trigger microprocessor cache misses that cause long delays. Compact data structures such as arrays, searched with linear search, may be faster if the table is relatively small and keys are integers or other short strings. According to Moore's Law, cache sizes are growing exponentially and so what is considered "small" may be increasing. The optimal performance point varies from system to system.

Hash tables become quite inefficient when there are many collisions. While extremely uneven hash distributions are extremely unlikely to arise by chance, a malicious adversary with knowledge of the hash function may be able to supply information to a hash which creates worst-case behavior by causing excessive collisions, resulting in very poor performance (i.e., a denial of service attack). In critical applications, either universal hashing can be used or a data structure with better worst-case guarantees may be preferable
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
ข้อเสียตารางแฮสามารถยากที่จะใช้มากกว่าตนเองสมดุลต้นไม้ค้นหาแบบทวิภาค เลือกฟังก์ชันการแฮที่มีประสิทธิภาพสำหรับการใช้งานเพิ่มเติมเป็นศิลปะมากกว่าวิทยาศาสตร์ ในรับเปิดแฮตาราง จึงง่ายต่อการสร้างฟังก์ชันแฮดีแม้ว่าการดำเนินการบนตารางแฮใช้เวลาคงโดยเฉลี่ย ค่าใช้จ่ายของฟังก์ชันแฮดีจะสูงมากกว่าวงภายในของอัลกอริทึมการค้นหาสำหรับลำดับรายการหรือค้นหาต้นไม้ จึง แฮตารางไม่ได้มีผลบังคับใช้เมื่อหมายเลขของรายการที่มีขนาดเล็กมาก (อย่างไรก็ตาม ในบางกรณี ค่าใช้จ่ายสูงในการคำนวณฟังก์ชันแฮสามารถจะบรรเทา โดยการบันทึกค่าแฮพร้อมกับคีย์)บางสายที่ใช้งาน เช่นตรวจสอบการสะกด แฮตารางการประมวลผลอาจมีประสิทธิภาพน้อยกว่าพยายาม ยูโรโกะจำกัด หรืออาร์เรย์ของจูดี้ ยัง ถ้าแต่ละคีย์จะถูกแสดง ด้วยจำนวนบิตที่มีขนาดเล็กพอ แล้ว ตารางแฮ หนึ่งอาจใช้คีย์เป็นดัชนีโดยตรงลงในอาร์เรย์ของค่านี้ หมายเหตุว่า ไม่มีชนไม่มีในกรณีนี้รายการที่เก็บไว้ในตารางแฮชสามารถระบุได้อย่างมีประสิทธิภาพ (ที่ต้นทุนคงที่ต่อรายการ), แต่ในสุ่มบางหลอก ดังนั้น มีวิธีมีประสิทธิภาพในการค้นหารายการสำคัญคือหมายเลขที่กำหนดได้อย่างมีประสิทธิภาพ รายการทั้งหมด n รายการในใบสั่งเฉพาะบางอย่างโดยทั่วไปต้องแยกเรียงลำดับขั้นตอน ต้นทุนเป็นสัดส่วนกับ log(n) ต่อรายการ ในการเปรียบเทียบ ค้นหาสั่งต้นไม้มีการค้นหา และแทรกต้นทุนสัดส่วน log(n) แต่ช่วยให้ค้นหาคีย์ที่ใกล้ที่สุดที่เกี่ยวกับต้นทุนเดียวกัน และสั่งแจงนับของรายการทั้งหมดที่ต้นทุนคงที่ต่อถ้าคีย์นี้ไม่ได้ (เนื่องจากฟังก์ชันแฮชน-ฟรี), อาจไม่มีวิธีที่ง่ายในการระบุคีย์ที่มีอยู่ในตารางได้เพียงแม้ว่าต้นทุนเฉลี่ยต่อการดำเนินงานคง และค่อนข้างเล็ก ต้นทุนของการดำเนินการเดียวอาจจะค่อนข้างสูง โดยเฉพาะอย่างยิ่ง หากตารางแฮใช้ปรับขนาดแบบไดนามิก การดำเนินการแทรกหรือการลบอาจบางครั้งใช้เวลาเป็นสัดส่วนกับจำนวนของรายการ นี้อาจจะคืนเงินที่ร้ายแรงในการใช้งานแบบเรียลไทม์ หรือแบบโต้ตอบแฮตารางแสดงท้องถิ่นที่ดีของการอ้างอิงทั่วไปซึ่งคือ ข้อมูลการเข้าถึงมีกระจายค่อนข้างสุ่มในหน่วยความจำ เนื่องจากแฮตารางรูปแบบการเข้าถึงที่ข้ามไปรอบ ๆ นี้สามารถเรียกการประมวลผลแคหายที่ทำให้เกิดความล่าช้ายาว โครงสร้างข้อมูลขนาดเล็กเช่นอาร์เรย์ ค้นหา การค้นหาเชิงเส้นอาจจะเร็วขึ้นถ้าตารางมีขนาดค่อนข้างเล็ก และคีย์ที่เป็นจำนวนเต็มหรือสตริอื่น ๆ ตามกฎของมัวร์ ขนาดแคชมีมื่อ และดังนั้น สิ่งที่ถือว่า "เล็ก" อาจจะเพิ่มขึ้น จุดประสิทธิภาพแตกต่างไปจากระบบตารางแฮจะค่อนข้างต่ำเมื่อมีชนมาก ในขณะที่การกระจายไม่สม่ำเสมอมากแฮไม่มากน่าจะเกิดขึ้นโดยบังเอิญ ศัตรูที่เป็นอันตราย ด้วยความรู้ของฟังก์ชันแฮได้สามารถจัดหาข้อมูลการแฮชซึ่งสร้างลักษณะการทำงานงาน โดยก่อให้เกิดการชนกันมากเกินไป เกิดประสิทธิภาพต่ำมาก (เช่น การปฏิเสธบริการโจมตี) ในงาน แฮสากลสามารถใช้ หรือโครงสร้างข้อมูลกับการรับประกันงานดีกว่าอาจจะดีกว่า
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
ข้อเสียตารางแฮชอาจเป็นเรื่องยากมากขึ้นในการดำเนินการกว่าตนเองสมดุลต้นไม้ค้นหาแบบทวิภาค เลือกฟังก์ชันแฮชที่มีประสิทธิภาพสำหรับการประยุกต์ใช้ที่เฉพาะเจาะจงมากขึ้นกว่าที่เป็นศิลปะวิทยาศาสตร์ ในเปิดจ่าหน้าตารางแฮชมันค่อนข้างง่ายที่จะสร้างฟังก์ชันแฮชยากจน. แม้ว่าการดำเนินการบนตารางแฮชใช้เวลาอย่างต่อเนื่องโดยเฉลี่ยค่าใช้จ่ายของฟังก์ชันแฮชที่ดีสามารถสูงกว่าวงในของอัลกอริทึมการค้นหาสำหรับอย่างมีนัยสำคัญ รายชื่อเรียงลำดับหรือต้นไม้ค้นหา ดังนั้นตารางแฮชไม่ได้มีประสิทธิภาพเมื่อจำนวนของรายการที่มีขนาดเล็กมาก ( แต่ในบางกรณีค่าใช้จ่ายสูงในการคำนวณฟังก์ชันแฮชสามารถบรรเทาได้ด้วยการประหยัดค่าแฮชร่วมกับปุ่ม.) สำหรับการใช้งานการประมวลผลสตริงบางอย่างเช่นการตรวจสอบการสะกดตารางแฮชอาจจะมีประสิทธิภาพน้อยกว่าพยายาม จำกัด ออโตหรือจูดี้อาร์เรย์ นอกจากนี้ถ้าแต่ละปุ่มจะแสดงเป็นจำนวนมากพอขนาดเล็กของบิตแล้วแทนที่จะตารางแฮชหนึ่งอาจใช้คีย์โดยตรงเป็นดัชนีลงในอาร์เรย์ของค่านิยม โปรดทราบว่าไม่มีการชนกันในกรณีนี้. รายการที่เก็บไว้ในตารางแฮชสามารถแจกแจงได้อย่างมีประสิทธิภาพ (มีค่าใช้จ่ายคงที่ต่อรายการ) แต่เฉพาะในบางเพื่อสุ่มหลอก ดังนั้นไม่มีทางที่มีประสิทธิภาพในการค้นหาอย่างมีประสิทธิภาพมีรายการที่สำคัญอยู่ใกล้กับที่สำคัญที่กำหนด รายการรายการทั้งหมด n ในการสั่งซื้อบางอย่างมักจะต้องเรียงลำดับขั้นตอนที่แยกต่างหากที่มีค่าใช้จ่ายเป็นสัดส่วนการเข้าสู่ระบบ (N) ต่อรายการ ในการเปรียบเทียบการสั่งซื้อต้นไม้ค้นหาที่มีการค้นหาและสัดส่วนค่าใช้จ่ายในการแทรกเข้าสู่ระบบ (N) แต่ให้หาปุ่มที่ใกล้ที่สุดอยู่ที่ประมาณค่าใช้จ่ายเดียวกันและสั่งการแจงนับของรายการทั้งหมดในค่าใช้จ่ายคงที่ต่อรายการ. ถ้ากุญแจที่จะไม่เก็บไว้ (เพราะ ฟังก์ชันแฮชคือการปะทะกันฟรี), อาจจะมีไม่มีวิธีที่ง่ายต่อการระบุคีย์ที่มีอยู่ในตารางในขณะใดก็ตาม. แม้ว่าค่าใช้จ่ายเฉลี่ยต่อการดำเนินงานอย่างต่อเนื่องและมีขนาดค่อนข้างเล็ก, ค่าใช้จ่ายในการดำเนินการเดียวที่อาจจะ ค่อนข้างสูง. โดยเฉพาะอย่างยิ่งถ้าตารางแฮชใช้การปรับขนาดแบบไดนามิกการดำเนินการแทรกหรือลบบางครั้งอาจใช้เวลาในสัดส่วนกับจำนวนของรายการ นี้อาจจะเป็นข้อเสียเปรียบอย่างรุนแรงในเวลาจริงหรือโปรแกรมการโต้ตอบ. ตารางแฮชในการจัดแสดงทั่วไปท้องที่ที่ดีของการอ้างอิงที่เป็นข้อมูลที่จะเข้าถึงได้ดูเหมือนจะมีการกระจายที่สุ่มในหน่วยความจำ เพราะตารางกัญชาทำให้เกิดรูปแบบการเข้าถึงที่กระโดดไปรอบ ๆ นี้สามารถเรียกแคชไมโครโปรเซสเซอร์ที่ก่อให้เกิดความล่าช้านาน โครงสร้างข้อมูลที่มีขนาดกะทัดรัดเช่นอาร์เรย์สืบค้นด้วยการค้นหาเชิงเส้นอาจจะเร็วถ้าตารางมีขนาดค่อนข้างเล็กและปุ่มเป็นจำนวนเต็มหรือสตริงสั้นอื่น ๆ ตามที่กฎของมัวร์แคชขนาดมีการเจริญเติบโตชี้แจงและเพื่อให้สิ่งที่ถือว่าเป็น "เล็ก" อาจจะเพิ่มขึ้น จุดประสิทธิภาพที่ดีที่สุดแตกต่างจากระบบไปยังระบบ. ตารางแฮชกลายเป็นที่ค่อนข้างไม่มีประสิทธิภาพเมื่อมีการชนกันจำนวนมาก ในขณะที่การกระจายกัญชาไม่สม่ำเสมอมากเป็นอย่างมากที่ไม่น่าจะเกิดขึ้นโดยบังเอิญเป็นศัตรูที่เป็นอันตรายที่มีความรู้ของฟังก์ชันแฮชอาจจะไม่สามารถที่จะจัดหาข้อมูลให้กับกัญชาซึ่งจะสร้างพฤติกรรมที่เลวร้ายที่สุดกรณีโดยก่อให้เกิดการชนกันมากเกินไปส่งผลให้ประสิทธิภาพดีมาก (เช่น, การปฏิเสธการโจมตีบริการ) ในการใช้งานที่สำคัญทั้งคร่ำเครียดสากลสามารถนำมาใช้หรือโครงสร้างข้อมูลที่มีดีกว่าที่เลวร้ายที่สุดกรณีการค้ำประกันอาจจะดีกว่า















การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ข้อเสียตารางแฮชสามารถยากที่จะใช้กว่าสมดุลต้นไม้ไบนารีค้นหาตนเอง เลือกใช้ฟังก์ชันแฮชที่มีประสิทธิภาพสำหรับโปรแกรมที่เฉพาะเจาะจงเป็นศิลป์มากกว่าศาสตร์ เปิดส่งกัญชาตารางมันค่อนข้างง่ายในการสร้างฟังก์ชัน hash ที่น่าสงสารแม้ว่าการดำเนินงานในตารางแฮชจะคงที่เฉลี่ยต้นทุนของฟังก์ชันแฮชที่ดีสามารถสูงกว่าภายในวงของการค้นหาอัลกอริทึมสำหรับรายชื่อกลุ่มหรือต้นไม้ค้นหา ดังนั้น สับตารางไม่มีประสิทธิภาพเมื่อจํานวนรายการที่มีขนาดเล็กมาก ( อย่างไรก็ตาม ในบางกรณีค่าใช้จ่ายสูงของคอมพิวเตอร์ฟังก์ชัน hash สามารถ mitigated โดยการบันทึกค่า hash ร่วมกับคีย์ )สำหรับการใช้งานการประมวลผลข้อความบางอย่าง เช่นตรวจสอบการสะกดตารางแฮชอาจจะมีประสิทธิภาพน้อยกว่าพยายาม จำกัด จำกัด หรือ จูดี้ อย่างต่อเนื่อง นอกจากนี้ ถ้าแต่ละคีย์จะถูกแทนด้วยตัวเลขเล็กเพียงพอของบิต จึงแทนของตารางแฮช หนึ่งอาจจะใช้คีย์โดยตรงในขณะที่ดัชนีลงในอาร์เรย์ของค่า หมายเหตุว่า ไม่มีการชนกันในคดีนี้รายการที่จัดเก็บในตารางแฮชสามารถระบุได้อย่างมีประสิทธิภาพ ( ต้นทุนคงที่ต่อรายการ ) แต่ในบางตัวเลขสุ่มเทียมเพื่อ ดังนั้น ไม่มีวิธีที่มีประสิทธิภาพได้อย่างมีประสิทธิภาพ ค้นหารายการที่สำคัญคือที่ใกล้ที่สุดไปให้คีย์ รายการทั้งหมดในรายการเพื่อที่เฉพาะเจาะจงบางอย่างที่อยู่โดยทั่วไปจะต้องแยก การเรียงลำดับ ขั้นตอน ซึ่งมีสัดส่วนค่าใช้จ่ายเพื่อ log ( n ) ต่อรายการ ในการเปรียบเทียบ , สั่งต้นไม้ค้นหามีการค้นหาและบันทึกค่าใช้จ่ายตามสัดส่วนการแทรก ( N ) แต่ให้ค้นหาคีย์ที่ใกล้ที่สุดที่เกี่ยวกับราคาเดียวกันและสั่งแจงรายการทั้งหมดที่ต้นทุนคงที่ต่อรายการถ้ากุญแจไม่ได้เก็บไว้ ( เพราะฟังก์ชัน hash คือการปะทะกันฟรี ฟรี ฟรี ฟรี ) , ไม่มีวิธีที่ง่ายเพื่อระบุคีย์ที่อยู่ในโต๊ะในขณะใดก็ตามแม้ว่าต้นทุนเฉลี่ยต่อการดำเนินงานคงที่ และค่อนข้างเล็ก ต้นทุนของการดำเนินงานเดียวอาจจะค่อนข้างสูง โดยเฉพาะถ้าตารางแฮชแบบไดนามิกที่ใช้ขนาดของการแทรกหรือลบการดำเนินงานบางครั้งอาจใช้เวลาได้สัดส่วนกับจำนวนของรายการ นี้อาจเป็นข้อบกพร่องร้ายแรงในเรียลไทม์หรือโปรแกรมประยุกต์แบบโต้ตอบกัญชาตารางแสดงทั่วไปยากจนที่อ้างอิง คือ ข้อมูลที่ได้มีการกระจายที่ดูเหมือนสุ่มในหน่วยความจำ เพราะตารางแฮชเพราะเข้าลวดลายที่กระโดดไปรอบ ๆนี้สามารถเรียกใช้แคชไมโครโปรเซสเซอร์คิดถึงสาเหตุความล่าช้านาน . ข้อมูลกระชับโครงสร้างเช่นอาร์เรย์ , ค้นหาด้วยการค้นหาแบบเชิงเส้น อาจจะเร็วกว่า ถ้าตารางมีขนาดค่อนข้างเล็ก และปุ่มเป็นจำนวนเต็มหรือสายสั้น ๆ ตามกฎของมัวร์ , ขนาดแคชจะเติบโตชี้แจงและสิ่งที่ถือว่าเป็น " เล็ก " อาจจะเพิ่มขึ้น จุดที่แตกต่างจากระบบเพื่อประสิทธิภาพสูงสุดของระบบตารางแฮชจะค่อนข้างไม่มีประสิทธิภาพ เมื่อมีการชนกันมาก ในขณะที่การกระจายกัญชามากไม่เรียบเป็นยากมากที่จะเกิดขึ้นโดยบังเอิญ คู่ต่อสู้ที่เป็นอันตรายกับความรู้ของฟังก์ชันแฮชจะได้จัดหาข้อมูลแฮชซึ่งสร้างพฤติกรรมทินโดยก่อให้เกิดการชนกันมากเกินไป ส่งผลให้ประสิทธิภาพไม่ดีมาก ( เช่นการปฏิเสธการโจมตีบริการ ) ในงานมีทั้งสากล hashing สามารถใช้หรือโครงสร้างของข้อมูลกับรับประกันทินดีกว่า อาจจะดีกว่า
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: