ຄວາມແຕກຕ່າງລະຫວ່າງອາເລແລະຕາຕະລາງ hash ໃນພາສາການຂຽນໂປແກຼມແມ່ນຫຍັງ?


ຕອບ 1:

ຕາຕະລາງ Hash ໃຊ້ແຖວ. Arrays ມີຊັບສິນທີ່ ສຳ ຄັນ ສຳ ລັບການເຮັດໃຫ້ມີຄວາມສັບສົນ: ທ່ານສາມາດເຂົ້າເຖິງແຕ່ລະອົງປະກອບໃນເວລາຄົງທີ່ຖ້າທ່ານຮູ້ດັດສະນີຂອງມັນ.

ທ່ານສາມາດໃຊ້ແຖວ ສຳ ລັບໃສ່ຖັງ. ສົມມຸດວ່າທ່ານຕ້ອງການນັບ ຈຳ ນວນຕົວອັກສອນຢູ່ໃນຂໍ້ຄວາມ, ຕົວຢ່າງເພື່ອອອກແບບບາງຢ່າງເຊັ່ນລະຫັດ Morse. ທ່ານສ້າງອາເລທີ່ມີ 26 ລາຍການ (ສຳ ລັບຕົວ ໜັງ ສືໂລມັນທີ່ງ່າຍດາຍໂດຍບໍ່ມີການອອກສຽງ). ເມື່ອໃດກໍ່ຕາມທີ່ທ່ານເຫັນຈົດ ໝາຍ, ໃຫ້ຄິດໄລ່ດັດສະນີແລະໄປທີ່ນັ້ນເຂົ້າໃນແຖວນັ້ນ.

ຕາຕະລາງ Hash ຂະຫຍາຍສິ່ງນີ້ ສຳ ລັບກະແຈຂອງຄວາມຍາວໃດໆ. ທ່ານ ຄຳ ນວນເລກ ສຳ ຄັນແລະໄປທີ່ດັດນີນັ້ນ. ບັນຫາແມ່ນເມື່ອຫລາຍກະແຈມີ hash ດຽວກັນ. ມີຫລາຍວິທີໃນການຈັດການກັບມັນ, ບາງວິທີທີ່ເຮັດໃຫ້ຈຸດປະສົງຂອງ hash ເສີຍຫາຍ (ແຕ່ງ່າຍຕໍ່ການຈັດຕັ້ງປະຕິບັດ). ບາງສ່ວນຂອງພວກມັນບໍ່ໄດ້ຮັກສາຊັບສິນທີ່ໃຊ້ເວລາຄົງທີ່, ຢ່າງຫນ້ອຍໂດຍສະເລ່ຍ.

ສິ່ງທີ່ດີທີ່ສຸດທີ່ຂ້ອຍໄດ້ເຫັນແມ່ນການເພີ່ມຂື້ນ, ເຊິ່ງໃນນັ້ນ Gonnet ແລະ Munroe ໄດ້ຮັບການພິສູດແລ້ວວ່າມີສະເລ່ຍແລ້ວຫຼາຍກ່ວາ 4 ເທື່ອດ້ວຍປັດໃຈການໂຫຼດ 50% ໂດຍບໍ່ ຄຳ ນຶງເຖິງຂະ ໜາດ ຂອງຕາຕະລາງ hash. ເຖິງຢ່າງໃດກໍ່ຕາມ, ນີ້ຮຽກຮ້ອງໃຫ້ໃຊ້ຕົວເລກທີ່ ສຳ ຄັນ, ແລະນີ້ກໍ່ເຮັດໃຫ້ການຈັດຕັ້ງປະຕິບັດມີຄວາມຫຍຸ້ງຍາກ. ທ່ານຕ້ອງຊອກຫາຕົວເລກທີ່ ສຳ ຄັນສຸດໆ. ໂຊກດີ, ຕາຕະລາງ hash ບໍ່ໃຫຍ່ຫຼາຍຈົນວ່າເລື່ອງນີ້ກາຍເປັນເລື່ອງຕະຫຼົກ.