ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

½ÌÄãÈçºÎÔÚº£Á¿Êý¾ÝÖÐÓÃËã·¨´¦ÀíÃæÊÔÌâ
2014-11-24 01:40:41 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:222´Î
Tags£ººÎÔÚ º£Á¿ Êý¾Ý ÖÐÓà Ëã·¨ ´¦Àí ÊÔÌâ

1. ¸ø¶¨a¡¢bÁ½¸öÎļþ£¬¸÷´æ·Å50ÒÚ¸öurl£¬Ã¿¸öurl¸÷Õ¼64×Ö½Ú£¬ÄÚ´æÏÞÖÆÊÇ4G£¬ÈÃÄãÕÒ³öa¡¢bÎļþ¹²Í¬µÄurl£¿


·½°¸1£º¿ÉÒÔ¹À¼Æÿ¸öÎļþ°²µÄ´óСΪ50G¡Á64=320G£¬Ô¶Ô¶´óÓÚÄÚ´æÏÞÖƵÄ4G¡£ËùÒÔ²»¿ÉÄܽ«ÆäÍêÈ«¼ÓÔص½ÄÚ´æÖд¦Àí¡£¿¼ÂDzÉÈ¡·Ö¶øÖÎÖ®µÄ·½·¨¡£


·½°¸2£ºÈç¹ûÔÊÐíÓÐÒ»¶¨µÄ´íÎóÂÊ£¬¿ÉÒÔʹÓÃBloom filter£¬4GÄÚ´æ´ó¸Å¿ÉÒÔ±íʾ340ÒÚbit¡£½«ÆäÖÐÒ»¸öÎļþÖеÄurlʹÓÃBloom filterÓ³ÉäΪÕâ340ÒÚbit£¬È»ºó°¤¸ö¶ÁÈ¡ÁíÍâÒ»¸öÎļþµÄurl£¬¼ì²éÊÇ·ñÓëBloom filter£¬Èç¹ûÊÇ£¬ÄÇô¸ÃurlÓ¦¸ÃÊǹ²Í¬µÄurl£¨×¢Òâ»áÓÐÒ»¶¨µÄ´íÎóÂÊ£©¡£


2. ÓÐ10¸öÎļþ£¬Ã¿¸öÎļþ1G£¬Ã¿¸öÎļþµÄÿһÐдæ·ÅµÄ¶¼ÊÇÓû§µÄquery£¬Ã¿¸öÎļþµÄquery¶¼¿ÉÄÜÖظ´¡£ÒªÇóÄã°´ÕÕqueryµÄƵ¶ÈÅÅÐò¡£


·½°¸1£º


·½°¸2£º


Ò»°ãqueryµÄ×ÜÁ¿ÊÇÓÐÏ޵ģ¬Ö»ÊÇÖظ´µÄ´ÎÊý±È½Ï¶à¶øÒÑ£¬¿ÉÄܶÔÓÚËùÓеÄquery£¬Ò»´ÎÐԾͿÉÒÔ¼ÓÈëµ½ÄÚ´æÁË¡£ÕâÑù£¬ÎÒÃǾͿÉÒÔ²ÉÓÃtrieÊ÷/hash_mapµÈÖ±½ÓÀ´Í³¼Æÿ¸öquery³öÏֵĴÎÊý£¬È»ºó°´³öÏÖ´ÎÊý×ö¿ìËÙ/¶Ñ/¹é²¢ÅÅÐò¾Í¿ÉÒÔÁË


·½°¸3£ºÓë·½°¸1ÀàËÆ£¬µ«ÔÚ×öÍêhash£¬·Ö³É¶à¸öÎļþºó£¬¿ÉÒÔ½»¸ø¶à¸öÎļþÀ´´¦Àí£¬²ÉÓ÷ֲ¼Ê½µÄ¼Ü¹¹À´´¦Àí£¨±ÈÈçMapReduce£©£¬×îºóÔÙ½øÐкϲ¢¡£


3. ÓÐÒ»¸ö1G´óСµÄÒ»¸öÎļþ£¬ÀïÃæÿһÐÐÊÇÒ»¸ö´Ê£¬´ÊµÄ´óС²»³¬¹ý16×Ö½Ú£¬ÄÚ´æÏÞÖÆ´óСÊÇ1M¡£·µ»ØƵÊý×î¸ßµÄ100¸ö´Ê¡£


·½°¸1£ºË³Ðò¶ÁÎļþÖУ¬¶ÔÓÚÿ¸ö´Êx£¬È¡£¬È»ºó°´ÕÕ¸ÃÖµ´æµ½5000¸öСÎļþ£¨¼ÇΪ£©ÖС£ÕâÑùÿ¸öÎļþ´ó¸ÅÊÇ200k×óÓÒ¡£Èç¹ûÆäÖеÄÓеÄÎļþ³¬¹ýÁË1M´óС£¬»¹¿ÉÒÔ°´ÕÕÀàËƵķ½·¨¼ÌÐøÍùÏ·֣¬ÖªµÀ·Ö½âµÃµ½µÄСÎļþµÄ´óС¶¼²»³¬¹ý1M¡£¶Ôÿ¸öСÎļþ£¬Í³¼Æÿ¸öÎļþÖгöÏֵĴÊÒÔ¼°ÏàÓ¦µÄƵÂÊ£¨¿ÉÒÔ²ÉÓÃtrieÊ÷/hash_mapµÈ£©£¬²¢È¡³ö³öÏÖƵÂÊ×î´óµÄ100¸ö´Ê£¨¿ÉÒÔÓú¬100¸ö½áµãµÄ×îС¶Ñ£©£¬²¢°Ñ100´Ê¼°ÏàÓ¦µÄƵÂÊ´æÈëÎļþ£¬ÕâÑùÓֵõ½ÁË5000¸öÎļþ¡£ÏÂÒ»²½¾ÍÊÇ°ÑÕâ5000¸öÎļþ½øÐй鲢£¨ÀàËÆÓë¹é²¢ÅÅÐò£©µÄ¹ý³ÌÁË¡£


4. º£Á¿ÈÕÖ¾Êý¾Ý£¬ÌáÈ¡³öijÈÕ·ÃÎʰٶȴÎÊý×î¶àµÄÄǸöIP¡£


·½°¸1£ºÊ×ÏÈÊÇÕâÒ»Ì죬²¢ÇÒÊÇ·ÃÎʰٶȵÄÈÕÖ¾ÖеÄIPÈ¡³öÀ´£¬Öð¸öдÈëµ½Ò»¸ö´óÎļþÖС£×¢Òâµ½IPÊÇ32λµÄ£¬×î¶àÓÐ2^32¸öIP¡£Í¬Ñù¿ÉÒÔ²ÉÓÃÓ³ÉäµÄ·½·¨£¬±ÈÈçÄ£1000£¬°ÑÕû¸ö´óÎļþÓ³ÉäΪ1000¸öСÎļþ£¬ÔÙÕÒ³öÿ¸öСÎÄÖгöÏÖƵÂÊ×î´óµÄIP£¨¿ÉÒÔ²ÉÓÃhash_map½øÐÐƵÂÊͳ¼Æ£¬È»ºóÔÙÕÒ³öƵÂÊ×î´óµÄ¼¸¸ö£©¼°ÏàÓ¦µÄƵÂÊ¡£È»ºóÔÙÔÚÕâ1000¸ö×î´óµÄIPÖУ¬ÕÒ³öÄǸöƵÂÊ×î´óµÄIP£¬¼´ÎªËùÇó¡£


5. ÔÚ2.5ÒÚ¸öÕûÊýÖÐÕÒ³ö²»Öظ´µÄÕûÊý£¬ÄÚ´æ²»×ãÒÔÈÝÄÉÕâ2.5ÒÚ¸öÕûÊý¡£


·½°¸1£º²ÉÓÃ2-Bitmap£¨Ã¿¸öÊý·ÖÅä2bit£¬00±íʾ²»´æÔÚ£¬01±íʾ³öÏÖÒ»´Î£¬10±íʾ¶à´Î£¬11ÎÞÒâÒ壩½øÐУ¬¹²ÐèÄÚ´æ2^32*2bit=1GBÄڴ棬»¹¿ÉÒÔ½ÓÊÜ¡£È»ºóɨÃèÕâ2.5ÒÚ¸öÕûÊý£¬²é¿´BitmapÖÐÏà¶ÔӦ룬Èç¹ûÊÇ00±ä01£¬01±ä10£¬10±£³Ö²»±ä¡£ËùÃèÍêʺ󣬲鿴bitmap£¬°Ñ¶ÔӦλÊÇ01µÄÕûÊýÊä³ö¼´¿É¡£


·½°¸2£ºÒ²¿É²ÉÓÃÉÏÌâÀàËƵķ½·¨£¬½øÐл®·ÖСÎļþµÄ·½·¨¡£È»ºóÔÚСÎļþÖÐÕÒ³ö²»Öظ´µÄÕûÊý£¬²¢ÅÅÐò¡£È»ºóÔÙ½øÐй鲢£¬×¢ÒâÈ¥³ýÖظ´µÄÔªËØ¡£


6. º£Á¿Êý¾Ý·Ö²¼ÔÚ100̨µçÄÔÖУ¬Ïë¸ö°ì·¨¸ßЧͳ¼Æ³öÕâÅúÊý¾ÝµÄTOP10¡£


·½°¸1£º


7. ÉÏǧÍò»òÉÏÒÚÊý¾Ý£¨ÓÐÖظ´£©£¬Í³¼ÆÆäÖгöÏÖ´ÎÊý×î¶àµÄÇ®N¸öÊý¾Ý¡£


·½°¸1£ºÉÏǧÍò»òÉÏÒÚµÄÊý¾Ý£¬ÏÖÔڵĻúÆ÷µÄÄÚ´æÓ¦¸ÃÄÜ´æÏ¡£ËùÒÔ¿¼ÂDzÉÓÃhash_map/ËÑË÷¶þ²æÊ÷/ºìºÚÊ÷µÈÀ´½øÐÐͳ¼Æ´ÎÊý¡£È»ºó¾ÍÊÇÈ¡³öÇ°N¸ö³öÏÖ´ÎÊý×î¶àµÄÊý¾ÝÁË£¬¿ÉÒÔÓõÚ6ÌâÌáµ½µÄ¶Ñ»úÖÆÍê³É¡£


8. Ò»¸öÎı¾Îļþ£¬´óÔ¼ÓÐÒ»ÍòÐУ¬Ã¿ÐÐÒ»¸ö´Ê£¬ÒªÇóͳ¼Æ³öÆäÖÐ×îƵ·±³öÏÖµÄÇ°10¸ö´Ê£¬Çë¸ø³ö˼Ï룬¸ø³öʱ¼ä¸´ÔӶȷÖÎö¡£


·½°¸1£ºÕâÌâÊÇ¿¼ÂÇʱ¼äЧÂÊ¡£ÓÃtrieÊ÷ͳ¼Æÿ¸ö´Ê³öÏֵĴÎÊý£¬Ê±¼ä¸´ÔÓ¶ÈÊÇO(n*le)£¨le±íʾµ¥´ÊµÄƽ׼³¤¶È£©¡£È»ºóÊÇÕÒ³ö³öÏÖ×îƵ·±µÄÇ°10¸ö´Ê£¬¿ÉÒÔÓöÑÀ´ÊµÏÖ£¬Ç°ÃæµÄÌâÖÐÒѾ­½²µ½ÁË£¬Ê±¼ä¸´ÔÓ¶ÈÊÇO(n*lg10)¡£ËùÒÔ×ܵÄʱ¼ä¸´ÔӶȣ¬ÊÇO(n*le)ÓëO(n*lg10)ÖнϴóµÄÄÄÒ»¸ö¡£


9. Ò»¸öÎı¾Îļþ£¬ÕÒ³öÇ°10¸ö¾­³£³öÏֵĴʣ¬µ«Õâ´ÎÎļþ±È½Ï³¤£¬ËµÊÇÉÏÒÚÐлòÊ®ÒÚÐУ¬×ÜÖ®ÎÞ·¨Ò»´Î¶ÁÈëÄڴ棬ÎÊ×îÓŽ⡣


·½°¸1£ºÊ×Ïȸù¾ÝÓÃhash²¢ÇóÄ££¬½«Îļþ·Ö½âΪ¶à¸öСÎļþ£¬¶ÔÓÚµ¥¸öÎļþÀûÓÃÉÏÌâµÄ·½·¨Çó³öÿ¸öÎļþ¼þÖÐ10¸ö×î³£³öÏֵĴʡ£È»ºóÔÙ½øÐй鲢´¦Àí£¬ÕÒ³ö×îÖÕµÄ10¸ö×î³£³öÏֵĴʡ£


10. 100w¸öÊýÖÐÕÒ³ö×î´óµÄ100¸öÊý¡£


·½°¸1£ºÔÚÇ°ÃæµÄÌâÖУ¬ÎÒÃÇÒѾ­Ìáµ½ÁË£¬ÓÃÒ»¸öº¬100¸öÔªËصÄ×îС¶ÑÍê³É¡£¸´ÔÓ¶ÈΪO(100w*lg100)¡£


11. Ò»¹²ÓÐN¸ö»úÆ÷£¬Ã¿¸ö»úÆ÷ÉÏÓÐN¸öÊý¡£Ã¿¸ö»úÆ÷×î¶à´æO(N)¸öÊý²¢¶ÔËüÃDzÙ×÷¡£ÈçºÎÕÒµ½N^2¸öÊýÖеÄÖÐÊý£¿


·½°¸1£ºÏÈ´óÌå¹À¼ÆÒ»ÏÂÕâЩÊýµÄ·¶Î§£¬±ÈÈçÕâÀï¼ÙÉèÕâЩÊý¶¼ÊÇ32λÎÞ·ûºÅÕûÊý£¨¹²ÓÐ2^32¸ö£©¡£ÎÒÃÇ°Ñ0µ½2^32-1µÄÕûÊý»®·ÖΪN¸ö·¶Î§¶Î£¬Ã¿¸ö¶Î°üº¬£¨2^32£©/N¸öÕûÊý¡£±ÈÈ磬µÚÒ»¸ö¶Îλ0µ½2^32/N-1£¬µÚ¶þ¶ÎΪ£¨2^32£©/Nµ½£¨2^32£©/N-1£¬¡­£¬µÚN¸ö¶ÎΪ£¨2^32£©£¨N-1£©/Nµ½2^32-1¡£È»ºó£¬É¨Ãèÿ¸ö»úÆ÷ÉϵÄN¸öÊý£¬°ÑÊôÓÚµÚÒ»¸öÇø¶ÎµÄÊý·Åµ½µÚÒ»¸ö»úÆ÷ÉÏ£¬ÊôÓÚµÚ¶þ¸öÇø¶ÎµÄÊý·Åµ½µÚ¶þ¸ö»úÆ÷ÉÏ£¬¡­£¬ÊôÓÚµÚN¸öÇø¶ÎµÄÊý·Åµ½µÚN¸ö»úÆ÷ÉÏ¡£×¢ÒâÕâ¸ö¹ý³Ìÿ¸ö»úÆ÷ÉÏ´æ´¢µÄÊýÓ¦¸ÃÊÇO(N)µÄ¡£ÏÂÃæÎÒÃÇÒÀ´Îͳ¼Æÿ¸ö»úÆ÷ÉÏÊýµÄ¸öÊý£¬Ò»´ÎÀÛ¼Ó£¬Ö±µ½ÕÒµ½µÚk¸ö»úÆ÷£¬ÔڸûúÆ÷ÉÏÀÛ¼ÓµÄÊý´óÓÚ»òµÈÓÚ£¨N^2£©/2£¬¶øÔÚµÚk-1¸ö»úÆ÷ÉϵÄÀÛ¼ÓÊýСÓÚ£¨N^2£©/2£¬²¢°ÑÕâ¸öÊý¼ÇΪx¡£ÄÇôÎÒÃÇÒªÕÒµÄÖÐλÊýÔÚµÚk¸ö»úÆ÷ÖУ¬ÅÅÔÚµÚ£¨N^2£©/2-xλ¡£È»ºóÎÒÃǶԵÚk¸ö»úÆ÷µÄÊýÅÅÐò£¬²¢ÕÒ³öµÚ£¨N^2£©/2-x¸öÊý£¬¼´ÎªËùÇóµÄÖÐλÊýµÄ¸´ÔÓ¶ÈÊÇO£¨N^2£©µÄ¡£


·½°¸2£ºÏȶÔÿ̨»úÆ÷ÉϵÄÊý½øÐÐÅÅÐò¡£ÅźÃÐòºó£¬ÎÒÃDzÉÓù鲢ÅÅÐòµÄ˼Ï룬½«ÕâN¸ö»úÆ÷ÉϵÄÊý¹é²¢ÆðÀ´µÃµ½×îÖÕµÄÅÅÐò¡£ÕÒµ½µÚ£¨N^2£©/2¸ö±ãÊÇËùÇ󡣸´ÔÓ¶ÈÊÇO£¨N^2*lgN^2£©µÄ¡£





¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£º¸ñ·½&ʱ´ú½Ü³ÏJava¿ª·¢¹¤³ÌʦÃæÊÔ.. ÏÂһƪ£ºº¼ÖÝ-»ÛÈíÍøÂç¿Æ¼¼ÓÐÏÞ¹«Ë¾

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿