¸üÐÂʱ¼ä:2019Äê10ÔÂ14ÈÕ15ʱ43·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:
ËÑË÷ÒýÇæµÄÈÈÃÅËÑË÷ÅÅÐаñ¹¦ÄÜÄãÓùýÂð?ÄãÖªµÀÕâ¸ö¹¦ÄÜÊÇÈçºÎʵÏÖµÄÂð?ʵ¼ÊÉÏ£¬ËüµÄʵÏÖ²¢²»¸´ÔÓ¡£ËÑË÷ÒýÇæÃ¿Ìì»á½ÓÊÕ´óÁ¿µÄÓû§ËÑË÷ÇëÇó£¬Ëü»á°ÑÕâЩÓû§ÊäÈëµÄËÑË÷¹Ø¼ü´Ê¼Ç¼ÏÂÀ´£¬È»ºóÔÙÀëÏßµØÍ³¼Æ·ÖÎö£¬µÃµ½×îÈÈÃÅµÄ Top 10 ËÑË÷¹Ø¼ü´Ê¡£
ÄÇÇëÄã˼¿¼Ï£¬¼ÙÉèÏÖÔÚÎÒÃÇÓÐÒ»¸ö°üº¬ 10 ÒÚ¸öËÑË÷¹Ø¼ü´ÊµÄÈÕÖ¾Îļþ£¬ÈçºÎÄÜ¿ìËÙ»ñÈ¡µ½ÈÈÃŰñ Top 10 µÄËÑË÷¹Ø¼ü´ÊÄØ?
Õâ¸öÎÊÌâ¾Í¿ÉÒÔÓöÑÀ´½â¾ö£¬ÕâÒ²ÊǶÑÕâÖÖÊý¾Ý½á¹¹Ò»¸ö·Ç³£µäÐ͵ÄÓ¦Óá£ÉÏÒ»½ÚÎÒÃǽ²Á˶ѺͶÑÅÅÐòµÄһЩÀíÂÛ֪ʶ£¬½ñÌìÎÒÃǾÍÀ´½²Ò»½²£¬¶ÑÕâÖÖÊý¾Ý½á¹¹¼¸¸ö·Ç³£ÖØÒªµÄÓ¦ÓãºÓÅÏȼ¶¶ÓÁС¢Çó Top K ºÍÇóÖÐλÊý¡£¡¾ÍƼöÁ˽⣺´óÊý¾ÝÅàѵ¿Î³Ì¡¿

¶ÑµÄÓ¦ÓÃÒ»£ºÓÅÏȼ¶¶ÓÁÐ
Ê×ÏÈ£¬ÎÒÃÇÀ´¿´µÚÒ»¸öÓ¦Óó¡¾°£ºÓÅÏȼ¶¶ÓÁС£
ÓÅÏȼ¶¶ÓÁУ¬¹ËÃû˼Ò壬ËüÊ×ÏÈÓ¦¸ÃÊÇÒ»¸ö¶ÓÁС£ÎÒÃÇÇ°Ãæ½²¹ý£¬¶ÓÁÐ×î´óµÄÌØÐÔ¾ÍÊÇÏȽøÏȳö¡£²»¹ý£¬ÔÚÓÅÏȼ¶¶ÓÁÐÖУ¬Êý¾ÝµÄ³ö¶Ó˳Ðò²»ÊÇÏȽøÏȳö£¬¶øÊǰ´ÕÕÓÅÏȼ¶À´£¬ÓÅÏȼ¶×î¸ßµÄ£¬×îÏȳö¶Ó¡£
ÈçºÎʵÏÖÒ»¸öÓÅÏȼ¶¶ÓÁÐÄØ?·½·¨Óкܶ࣬µ«ÊÇÓöÑÀ´ÊµÏÖÊÇ×îÖ±½Ó¡¢×î¸ßЧµÄ¡£ÕâÊÇÒòΪ£¬¶ÑºÍÓÅÏȼ¶¶ÓÁзdz£ÏàËÆ¡£Ò»¸ö¶Ñ¾Í¿ÉÒÔ¿´×÷Ò»¸öÓÅÏȼ¶¶ÓÁС£ºÜ¶àʱºò£¬ËüÃÇÖ»ÊǸÅÄîÉϵÄÇø·Ö¶øÒÑ¡£ÍùÓÅÏȼ¶¶ÓÁÐÖвåÈëÒ»¸öÔªËØ£¬¾ÍÏ൱ÓÚÍù¶ÑÖвåÈëÒ»¸öÔªËØ;´ÓÓÅÏȼ¶¶ÓÁÐÖÐÈ¡³öÓÅÏȼ¶×î¸ßµÄÔªËØ£¬¾ÍÏ൱ÓÚÈ¡³ö¶Ñ¶¥ÔªËØ¡£
Äã¿É±ðС¿´Õâ¸öÓÅÏȼ¶¶ÓÁУ¬ËüµÄÓ¦Óó¡¾°·Ç³£¶à¡£ÎÒÃǺóÃæÒª½²µÄºÜ¶àÊý¾Ý½á¹¹ºÍËã·¨¶¼ÒªÒÀÀµËü¡£±ÈÈ磬ºÕ·òÂü±àÂ롢ͼµÄ×î¶Ì·¾¶¡¢×îСÉú³ÉÊ÷Ëã·¨µÈµÈ¡£²»½öÈç´Ë£¬ºÜ¶àÓïÑÔÖУ¬¶¼ÌṩÁËÓÅÏȼ¶¶ÓÁеÄʵÏÖ£¬±ÈÈ磬Java µÄ PriorityQueue£¬C++ µÄ priority_queue µÈ¡£
Ö»½²ÕâЩӦÓó¡¾°±È½Ï¿Õ·º£¬ÏÖÔÚ£¬ÎÒ¾ÙÁ½¸ö¾ßÌåµÄÀý×Ó£¬ÈÃÄã¸ÐÊÜÒ»ÏÂÓÅÏȼ¶¶ÓÁоßÌåÊÇÔõôÓõġ£
1. ºÏ²¢ÓÐÐòСÎļþ
¼ÙÉèÎÒÃÇÓÐ 100 ¸öСÎļþ£¬Ã¿¸öÎļþµÄ´óСÊÇ 100MB£¬Ã¿¸öÎļþÖд洢µÄ¶¼ÊÇÓÐÐòµÄ×Ö·û´®¡£ÎÒÃÇÏ£Íû½«ÕâЩ 100 ¸öСÎļþºÏ²¢³ÉÒ»¸öÓÐÐòµÄ´óÎļþ¡£ÕâÀï¾Í»áÓõ½ÓÅÏȼ¶¶ÓÁС£
ÕûÌå˼·ÓеãÏñ¹é²¢ÅÅÐòÖеĺϲ¢º¯Êý¡£ÎÒÃÇ´ÓÕâ 100 ¸öÎļþÖУ¬¸÷È¡µÚÒ»¸ö×Ö·û´®£¬·ÅÈëÊý×éÖУ¬È»ºó±È½Ï´óС£¬°Ñ×îСµÄÄǸö×Ö·û´®·ÅÈëºÏ²¢ºóµÄ´óÎļþÖУ¬²¢´ÓÊý×éÖÐɾ³ý¡£
¼ÙÉ裬Õâ¸ö×îСµÄ×Ö·û´®À´×ÔÓÚ 13.txt Õâ¸öСÎļþ£¬ÎÒÃǾÍÔÙ´ÓÕâ¸öСÎļþÈ¡ÏÂÒ»¸ö×Ö·û´®£¬²¢Çҷŵ½Êý×éÖУ¬ÖØÐ±ȽϴóС£¬²¢ÇÒÑ¡Ôñ×îСµÄ·ÅÈëºÏ²¢ºóµÄ´óÎļþ£¬²¢ÇÒ½«Ëü´ÓÊý×éÖÐɾ³ý¡£ÒÀ´ÎÀàÍÆ£¬Ö±µ½ËùÓеÄÎļþÖеÄÊý¾Ý¶¼·ÅÈëµ½´óÎļþΪֹ¡£
ÕâÀïÎÒÃÇÓÃÊý×éÕâÖÖÊý¾Ý½á¹¹£¬À´´æ´¢´ÓСÎļþÖÐÈ¡³öÀ´µÄ×Ö·û´®¡£Ã¿´Î´ÓÊý×éÖÐÈ¡×îС×Ö·û´®£¬¶¼ÐèҪѻ·±éÀúÕû¸öÊý×飬ÏÔÈ»£¬Õâ²»ÊǺܸßЧ¡£ÓÐûÓиü¼Ó¸ßЧ·½·¨ÄØ?
ÕâÀï¾Í¿ÉÒÔÓõ½ÓÅÏȼ¶¶ÓÁУ¬Ò²¿ÉÒÔ˵ÊǶѡ£ÎÒÃǽ«´ÓСÎļþÖÐÈ¡³öÀ´µÄ×Ö·û´®·ÅÈ뵽С¶¥¶ÑÖУ¬ÄǶѶ¥µÄÔªËØ£¬Ò²¾ÍÊÇÓÅÏȼ¶¶ÓÁжÓÊ×µÄÔªËØ£¬¾ÍÊÇ×îСµÄ×Ö·û´®¡£ÎÒÃǽ«Õâ¸ö×Ö·û´®·ÅÈëµ½´óÎļþÖУ¬²¢½«Æä´Ó¶ÑÖÐɾ³ý¡£È»ºóÔÙ´ÓСÎļþÖÐÈ¡³öÏÂÒ»¸ö×Ö·û´®£¬·ÅÈëµ½¶ÑÖС£Ñ»·Õâ¸ö¹ý³Ì£¬¾Í¿ÉÒÔ½« 100 ¸öСÎļþÖеÄÊý¾ÝÒÀ´Î·ÅÈëµ½´óÎļþÖС£
ÎÒÃÇÖªµÀ£¬É¾³ý¶Ñ¶¥Êý¾ÝºÍÍù¶ÑÖвåÈëÊý¾ÝµÄʱ¼ä¸´ÔӶȶ¼ÊÇ O(logn)£¬n ±íʾ¶ÑÖеÄÊý¾Ý¸öÊý£¬ÕâÀï¾ÍÊÇ 100¡£ÊDz»ÊDZÈÔÀ´Êý×é´æ´¢µÄ·½Ê½¸ßЧÁ˺ܶàÄØ?
2. ¸ßÐÔÄܶ¨Ê±Æ÷
¼ÙÉèÎÒÃÇÓÐÒ»¸ö¶¨Ê±Æ÷£¬¶¨Ê±Æ÷ÖÐά»¤Á˺ܶඨʱÈÎÎñ£¬Ã¿¸öÈÎÎñ¶¼É趨ÁËÒ»¸öÒª´¥·¢Ö´ÐеÄʱ¼äµã¡£¶¨Ê±Æ÷ÿ¹ýÒ»¸öºÜСµÄµ¥Î»Ê±¼ä(±ÈÈç 1 Ãë)£¬¾ÍɨÃèÒ»±éÈÎÎñ£¬¿´ÊÇ·ñÓÐÈÎÎñµ½´ïÉ趨µÄÖ´ÐÐʱ¼ä¡£Èç¹ûµ½´ïÁË£¬¾ÍÄóöÀ´Ö´ÐС£
µ«ÊÇ£¬ÕâÑùÿ¹ý 1 Ãë¾ÍɨÃèÒ»±éÈÎÎñÁбíµÄ×ö·¨±È½ÏµÍЧ£¬Ö÷ÒªÔÒòÓÐÁ½µã£ºµÚÒ»£¬ÈÎÎñµÄÔ¼¶¨Ö´ÐÐʱ¼äÀ뵱ǰʱ¼ä¿ÉÄÜ»¹Óкܾã¬ÕâÑùÇ°ÃæºÜ¶à´ÎɨÃèÆäʵ¶¼ÊÇͽÀ͵Ä;µÚ¶þ£¬Ã¿´Î¶¼ÒªÉ¨ÃèÕû¸öÈÎÎñÁÐ±í£¬Èç¹ûÈÎÎñÁбíºÜ´óµÄ»°£¬ÊƱػá±È½ÏºÄʱ¡£
Õë¶ÔÕâЩÎÊÌ⣬ÎÒÃǾͿÉÒÔÓÃÓÅÏȼ¶¶ÓÁÐÀ´½â¾ö¡£ÎÒÃǰ´ÕÕÈÎÎñÉ趨µÄÖ´ÐÐʱ¼ä£¬½«ÕâЩÈÎÎñ´æ´¢ÔÚÓÅÏȼ¶¶ÓÁÐÖУ¬¶ÓÁÐÊײ¿(Ò²¾ÍÊÇС¶¥¶ÑµÄ¶Ñ¶¥)´æ´¢µÄÊÇ×îÏÈÖ´ÐеÄÈÎÎñ¡£
ÕâÑù£¬¶¨Ê±Æ÷¾Í²»ÐèҪÿ¸ô 1 Ãë¾ÍɨÃèÒ»±éÈÎÎñÁбíÁË¡£ËüÄöÓÊ×ÈÎÎñµÄÖ´ÐÐʱ¼äµã£¬Ó뵱ǰʱ¼äµãÏà¼õ£¬µÃµ½Ò»¸öʱ¼ä¼ä¸ô T¡£
Õâ¸öʱ¼ä¼ä¸ô T ¾ÍÊÇ£¬´Óµ±Ç°Ê±¼ä¿ªÊ¼£¬ÐèÒªµÈ´ý¶à¾Ã£¬²Å»áÓеÚÒ»¸öÈÎÎñÐèÒª±»Ö´ÐС£ÕâÑù£¬¶¨Ê±Æ÷¾Í¿ÉÒÔÉ趨ÔÚ T ÃëÖ®ºó£¬ÔÙÀ´Ö´ÐÐÈÎÎñ¡£´Óµ±Ç°Ê±¼äµãµ½(T-1)ÃëÕâ¶Îʱ¼äÀ¶¨Ê±Æ÷¶¼²»ÐèÒª×öÈκÎÊÂÇé¡£
µ± T Ãëʱ¼ä¹ýÈ¥Ö®ºó£¬¶¨Ê±Æ÷È¡ÓÅÏȼ¶¶ÓÁÐÖжÓÊ×µÄÈÎÎñÖ´ÐС£È»ºóÔÙ¼ÆËãеĶÓÊ×ÈÎÎñµÄÖ´ÐÐʱ¼äµãÓ뵱ǰʱ¼äµãµÄ²îÖµ£¬°ÑÕâ¸öÖµ×÷Ϊ¶¨Ê±Æ÷Ö´ÐÐÏÂÒ»¸öÈÎÎñÐèÒªµÈ´ýµÄʱ¼ä¡£
ÕâÑù£¬¶¨Ê±Æ÷¼È²»Óüä¸ô 1 Ãë¾ÍÂÖѯһ´Î£¬Ò²²»ÓñéÀúÕû¸öÈÎÎñÁÐ±í£¬ÐÔÄÜÒ²¾ÍÌá¸ßÁË¡£
¶ÑµÄÓ¦Óöþ£ºÀûÓöÑÇó Top K
¸Õ¸ÕÎÒÃÇѧϰÁËÓÅÏȼ¶¶ÓÁУ¬ÎÒÃÇÏÖÔÚÀ´¿´£¬¶ÑµÄÁíÍâÒ»¸ö·Ç³£ÖØÒªµÄÓ¦Óó¡¾°£¬ÄǾÍÊÇ“Çó Top K ÎÊÌ┡£
ÎÒ°ÑÕâÖÖÇó Top K µÄÎÊÌâ³éÏó³ÉÁ½Àà¡£Ò»ÀàÊÇÕë¶Ô¾²Ì¬Êý¾Ý¼¯ºÏ£¬Ò²¾ÍÊÇ˵Êý¾Ý¼¯ºÏÊÂÏÈÈ·¶¨£¬²»»áÔٱ䡣ÁíÒ»ÀàÊÇÕë¶Ô¶¯Ì¬Êý¾Ý¼¯ºÏ£¬Ò²¾ÍÊÇ˵Êý¾Ý¼¯ºÏÊÂÏȲ¢²»È·¶¨£¬ÓÐÊý¾Ý¶¯Ì¬µØ¼ÓÈëµ½¼¯ºÏÖС£
Õë¶Ô¾²Ì¬Êý¾Ý£¬ÈçºÎÔÚÒ»¸ö°üº¬ n ¸öÊý¾ÝµÄÊý×éÖУ¬²éÕÒǰ K ´óÊý¾ÝÄØ?ÎÒÃÇ¿ÉÒÔά»¤Ò»¸ö´óСΪ K µÄС¶¥¶Ñ£¬Ë³Ðò±éÀúÊý×飬´ÓÊý×éÖÐÈ¡³öÈ¡Êý¾ÝÓë¶Ñ¶¥ÔªËرȽϡ£Èç¹û±È¶Ñ¶¥ÔªËØ´ó£¬ÎÒÃǾͰѶѶ¥ÔªËØÉ¾³ý£¬²¢ÇÒ½«Õâ¸öÔªËØ²åÈëµ½¶ÑÖÐ;Èç¹û±È¶Ñ¶¥ÔªËØÐ¡£¬Ôò²»×ö´¦Àí£¬¼ÌÐø±éÀúÊý×é¡£ÕâÑùµÈÊý×éÖеÄÊý¾Ý¶¼±éÀúÍêÖ®ºó£¬¶ÑÖеÄÊý¾Ý¾ÍÊÇǰ K ´óÊý¾ÝÁË¡£
±éÀúÊý×éÐèÒª O(n) µÄʱ¼ä¸´ÔÓ¶È£¬Ò»´Î¶Ñ»¯²Ù×÷ÐèÒª O(logK) µÄʱ¼ä¸´ÔÓ¶È£¬ËùÒÔ×Çé¿öÏ£¬n ¸öÔªËØ¶¼Èë¶ÑÒ»´Î£¬ËùÒÔʱ¼ä¸´ÔӶȾÍÊÇ O(nlogK)¡£
Õë¶Ô¶¯Ì¬Êý¾ÝÇóµÃ Top K ¾ÍÊÇʵʱ Top K¡£ÔõôÀí½âÄØ?ÎÒ¾ÙÒ»¸öÀý×Ó¡£Ò»¸öÊý¾Ý¼¯ºÏÖÐÓÐÁ½¸ö²Ù×÷£¬Ò»¸öÊÇÌí¼ÓÊý¾Ý£¬ÁíÒ»¸öѯÎʵ±Ç°µÄǰ K ´óÊý¾Ý¡£
Èç¹ûÿ´ÎѯÎÊǰ K ´óÊý¾Ý£¬ÎÒÃǶ¼»ùÓÚµ±Ç°µÄÊý¾ÝÖØÐ¼ÆËãµÄ»°£¬ÄÇʱ¼ä¸´ÔӶȾÍÊÇ O(nlogK)£¬n ±íʾµ±Ç°µÄÊý¾ÝµÄ´óС¡£Êµ¼ÊÉÏ£¬ÎÒÃÇ¿ÉÒÔÒ»Ö±¶¼Î¬»¤Ò»¸ö K ´óСµÄС¶¥¶Ñ£¬µ±ÓÐÊý¾Ý±»Ìí¼Óµ½¼¯ºÏÖÐʱ£¬ÎÒÃǾÍÄÃËüÓë¶Ñ¶¥µÄÔªËØ¶Ô±È¡£Èç¹û±È¶Ñ¶¥ÔªËØ´ó£¬ÎÒÃǾͰѶѶ¥ÔªËØÉ¾³ý£¬²¢ÇÒ½«Õâ¸öÔªËØ²åÈëµ½¶ÑÖÐ;Èç¹û±È¶Ñ¶¥ÔªËØÐ¡£¬Ôò²»×ö´¦Àí¡£ÕâÑù£¬ÎÞÂÛÈκÎʱºòÐèÒª²éѯµ±Ç°µÄǰ K ´óÊý¾Ý£¬ÎÒÃǶ¼¿ÉÒÔÀïÁ¢¿Ì·µ»Ø¸øËû¡£
¶ÑµÄÓ¦ÓÃÈý£ºÀûÓöÑÇóÖÐλÊý
Ç°ÃæÎÒÃǽ²ÁËÈçºÎÇó Top K µÄÎÊÌ⣬ÏÖÔÚÎÒÃÇÀ´½²Ï£¬ÈçºÎÇó¶¯Ì¬Êý¾Ý¼¯ºÏÖеÄÖÐλÊý¡£
ÖÐλÊý£¬¹ËÃû˼Ò壬¾ÍÊÇ´¦ÔÚÖмäλÖõÄÄǸöÊý¡£Èç¹ûÊý¾ÝµÄ¸öÊýÊÇÆæÊý£¬°ÑÊý¾Ý´ÓСµ½´óÅÅÁУ¬ÄÇµÚ n/2+1 ¸öÊý¾Ý¾ÍÊÇÖÐλÊý;Èç¹ûÊý¾ÝµÄ¸öÊýÊÇżÊýµÄ»°£¬ÄÇ´¦ÓÚÖмäλÖõÄÊý¾ÝÓÐÁ½¸ö£¬µÚn/2 ¸öºÍµÚ n/2+1 ¸öÊý¾Ý£¬Õâ¸öʱºò£¬ÎÒÃÇ¿ÉÒÔËæÒâȡһ¸ö×÷ΪÖÐλÊý£¬±ÈÈçÈ¡Á½¸öÊýÖп¿Ç°µÄÄǸö£¬¾ÍÊÇµÚ n/2 ¸öÊý¾Ý¡£
¶ÔÓÚÒ»×龲̬Êý¾Ý£¬ÖÐλÊýÊǹ̶¨µÄ£¬ÎÒÃÇ¿ÉÒÔÏÈÅÅÐò£¬µÚ n/2 ¸öÊý¾Ý¾ÍÊÇÖÐλÊý¡£Ã¿´ÎѯÎÊÖÐλÊýµÄʱºò£¬ÎÒÃÇÖ±½Ó·µ»ØÕâ¸ö¹Ì¶¨µÄÖµ¾ÍºÃÁË¡£ËùÒÔ£¬¾¡¹ÜÅÅÐòµÄ´ú¼Û±È½Ï´ó£¬µ«ÊDZ߼ʳɱ¾»áºÜС¡£µ«ÊÇ£¬Èç¹ûÎÒÃÇÃæ¶ÔµÄÊǶ¯Ì¬Êý¾Ý¼¯ºÏ£¬ÖÐλÊýÔÚ²»Í£µØ±ä¶¯£¬Èç¹ûÔÙÓÃÏÈÅÅÐòµÄ·½·¨£¬Ã¿´ÎѯÎÊÖÐλÊýµÄʱºò£¬¶¼ÒªÏȽøÐÐÅÅÐò£¬ÄÇЧÂʾͲ»¸ßÁË¡£
½èÖú¶ÑÕâÖÖÊý¾Ý½á¹¹£¬ÎÒÃDz»ÓÃÅÅÐò£¬¾Í¿ÉÒԷdz£¸ßЧµØÊµÏÖÇóÖÐλÊý²Ù×÷¡£ÎÒÃÇÀ´¿´¿´£¬ËüÊÇÈçºÎ×öµ½µÄ?
ÎÒÃÇÐèҪά»¤Á½¸ö¶Ñ£¬Ò»¸ö´ó¶¥¶Ñ£¬Ò»¸öС¶¥¶Ñ¡£´ó¶¥¶ÑÖд洢ǰ°ë²¿·ÖÊý¾Ý£¬Ð¡¶¥¶ÑÖд洢ºó°ë²¿·ÖÊý¾Ý£¬ÇÒС¶¥¶ÑÖеÄÊý¾Ý¶¼´óÓÚ´ó¶¥¶ÑÖеÄÊý¾Ý¡£
Ò²¾ÍÊÇ˵£¬Èç¹ûÓÐ n ¸öÊý¾Ý£¬n ÊÇżÊý£¬ÎÒÃÇ´ÓСµ½´óÅÅÐò£¬ÄÇǰ n/2 ¸öÊý¾Ý´æ´¢ÔÚ´ó¶¥¶ÑÖУ¬ºó n/2 ¸öÊý¾Ý´æ´¢ÔÚС¶¥¶ÑÖС£ÕâÑù£¬´ó¶¥¶ÑÖеĶѶ¥ÔªËؾÍÊÇÎÒÃÇÒªÕÒµÄÖÐλÊý¡£Èç¹û n ÊÇÆæÊý£¬Çé¿öÊÇÀàËÆµÄ£¬´ó¶¥¶Ñ¾Í´æ´¢ n/2+1 ¸öÊý¾Ý£¬Ð¡¶¥¶ÑÖоʹ洢 n/2 ¸öÊý¾Ý¡£
ÎÒÃÇÇ°ÃæÒ²Ìáµ½£¬Êý¾ÝÊǶ¯Ì¬±ä»¯µÄ£¬µ±ÐÂÌí¼ÓÒ»¸öÊý¾ÝµÄʱºò£¬ÎÒÃÇÈçºÎµ÷ÕûÁ½¸ö¶Ñ£¬Èô󶥶ÑÖеĶѶ¥ÔªËؼÌÐøÊÇÖÐλÊýÄØ?
Èç¹ûмÓÈëµÄÊý¾ÝСÓÚµÈÓڴ󶥶ѵĶѶ¥ÔªËØ£¬ÎÒÃǾͽ«Õâ¸öÐÂÊý¾Ý²åÈëµ½´ó¶¥¶Ñ;Èç¹ûмÓÈëµÄÊý¾Ý´óÓÚµÈÓÚС¶¥¶ÑµÄ¶Ñ¶¥ÔªËØ£¬ÎÒÃǾͽ«Õâ¸öÐÂÊý¾Ý²åÈ뵽С¶¥¶Ñ¡£
Õâ¸öʱºò¾ÍÓпÉÄܳöÏÖ£¬Á½¸ö¶ÑÖеÄÊý¾Ý¸öÊý²»·ûºÏÇ°ÃæÔ¼¶¨µÄÇé¿ö£ºÈç¹û n ÊÇżÊý£¬Á½¸ö¶ÑÖеÄÊý¾Ý¸öÊý¶¼ÊÇn/2;Èç¹û n ÊÇÆæÊý£¬´ó¶¥¶ÑÓÐ n/2+1 ¸öÊý¾Ý£¬Ð¡¶¥¶ÑÓÐ n/2 ¸öÊý¾Ý¡£Õâ¸öʱºò£¬ÎÒÃÇ¿ÉÒÔ´ÓÒ»¸ö¶ÑÖв»Í£µØ½«¶Ñ¶¥ÔªËØÒƶ¯µ½ÁíÒ»¸ö¶Ñ£¬Í¨¹ýÕâÑùµÄµ÷Õû£¬À´ÈÃÁ½¸ö¶ÑÖеÄÊý¾ÝÂú×ãÉÏÃæµÄÔ¼¶¨¡£
ÓÚÊÇ£¬ÎÒÃǾͿÉÒÔÀûÓÃÁ½¸ö¶Ñ£¬Ò»¸ö´ó¶¥¶Ñ¡¢Ò»¸öС¶¥¶Ñ£¬ÊµÏÖÔÚ¶¯Ì¬Êý¾Ý¼¯ºÏÖÐÇóÖÐλÊýµÄ²Ù×÷¡£²åÈëÊý¾ÝÒòΪÐè񻃾¼°¶Ñ»¯£¬ËùÒÔʱ¼ä¸´ÔӶȱä³ÉÁË O(logn)£¬µ«ÊÇÇóÖÐλÊýÎÒÃÇÖ»ÐèÒª·µ»Ø´ó¶¥¶ÑµÄ¶Ñ¶¥ÔªËؾͿÉÒÔÁË£¬ËùÒÔʱ¼ä¸´ÔӶȾÍÊÇ O(1)¡£
ʵ¼ÊÉÏ£¬ÀûÓÃÁ½¸ö¶Ñ²»½ö¿ÉÒÔ¿ìËÙÇó³öÖÐλÊý£¬»¹¿ÉÒÔ¿ìËÙÇóÆäËû°Ù·ÖλµÄÊý¾Ý£¬ÔÀíÊÇÀàËÆµÄ¡£»¹¼ÇµÃÎÒÃÇÔړΪʲôҪѧϰÊý¾Ý½á¹¹ÓëËã·¨”ÀïµÄÕâ¸öÎÊÌâÂð?“ÈçºÎ¿ìËÙÇó½Ó¿ÚµÄ 99% ÏìӦʱ¼ä?”ÎÒÃÇÏÖÔÚ¾ÍÀ´¿´Ï£¬ÀûÓÃÁ½¸ö¶ÑÈçºÎÀ´ÊµÏÖ¡£
ÔÚ¿ªÊ¼Õâ¸öÎÊÌâµÄ½²½â֮ǰ£¬ÎÒÏȽâÊÍһϣ¬Ê²Ã´ÊÇ“99% ÏìӦʱ¼ä”¡£
ÖÐλÊýµÄ¸ÅÄî¾ÍÊǽ«Êý¾Ý´ÓСµ½´óÅÅÁУ¬´¦ÓÚÖмäλÖ㬾ͽÐÖÐλÊý£¬Õâ¸öÊý¾Ý»á´óÓÚµÈÓÚÇ°Ãæ 50% µÄÊý¾Ý¡£99 °Ù·ÖλÊýµÄ¸ÅÄî¿ÉÒÔÀà±ÈÖÐλÊý£¬Èç¹û½«Ò»×éÊý¾Ý´ÓСµ½´óÅÅÁУ¬Õâ¸ö 99 °Ù·ÖλÊý¾ÍÊÇ´óÓÚÇ°Ãæ 99% Êý¾ÝµÄÄǸöÊý¾Ý¡£
Èç¹ûÄ㻹ÊDz»Ì«Àí½â£¬ÎÒÔپٸöÀý×Ó¡£¼ÙÉèÓÐ 100 ¸öÊý¾Ý£¬·Ö±ðÊÇ 1£¬2£¬3£¬……£¬100£¬ÄÇ 99 °Ù·ÖλÊý¾ÍÊÇ 99£¬ÒòΪСÓÚµÈÓÚ 99 µÄÊýÕ¼×ܸöÊýµÄ 99%¡£
Ū¶®ÁËÕâ¸ö¸ÅÄÎÒÃÇÔÙÀ´¿´ 99% ÏìӦʱ¼ä¡£Èç¹ûÓÐ 100 ¸ö½Ó¿Ú·ÃÎÊÇëÇó£¬Ã¿¸ö½Ó¿ÚÇëÇóµÄÏìӦʱ¼ä¶¼²»Í¬£¬±ÈÈç 55 ºÁÃë¡¢100 ºÁÃë¡¢23 ºÁÃëµÈ£¬ÎÒÃǰÑÕâ 100 ¸ö½Ó¿ÚµÄÏìӦʱ¼ä°´ÕÕ´ÓСµ½´óÅÅÁУ¬ÅÅÔÚµÚ 99 µÄÄǸöÊý¾Ý¾ÍÊÇ 99% ÏìӦʱ¼ä£¬Ò²½Ð 99 °Ù·ÖλÏìӦʱ¼ä¡£
ÎÒÃÇ×ܽáһϣ¬Èç¹ûÓÐ n ¸öÊý¾Ý£¬½«Êý¾Ý´ÓСµ½´óÅÅÁÐÖ®ºó£¬99 °Ù·ÖλÊý´óÔ¼¾ÍÊÇµÚ n*99% ¸öÊý¾Ý£¬Í¬À࣬80 °Ù·ÖλÊý´óÔ¼¾ÍÊÇµÚ n*80% ¸öÊý¾Ý¡£
Ū¶®ÁËÕâЩ£¬ÎÒÃÇÔÙÀ´¿´ÈçºÎÇó 99% ÏìӦʱ¼ä¡£
ÎÒÃÇά»¤Á½¸ö¶Ñ£¬Ò»¸ö´ó¶¥¶Ñ£¬Ò»¸öС¶¥¶Ñ¡£¼ÙÉ赱ǰ×ÜÊý¾ÝµÄ¸öÊýÊÇ n£¬´ó¶¥¶ÑÖб£´æ n*99% ¸öÊý¾Ý£¬Ð¡¶¥¶ÑÖб£´æ n*1% ¸öÊý¾Ý¡£´ó¶¥¶Ñ¶Ñ¶¥µÄÊý¾Ý¾ÍÊÇÎÒÃÇÒªÕÒµÄ 99% ÏìӦʱ¼ä¡£
ÿ´Î²åÈëÒ»¸öÊý¾ÝµÄʱºò£¬ÎÒÃÇÒªÅжÏÕâ¸öÊý¾Ý¸ú´ó¶¥¶ÑºÍС¶¥¶Ñ¶Ñ¶¥Êý¾ÝµÄ´óС¹ØÏµ£¬È»ºó¾ö¶¨²åÈëµ½Äĸö¶ÑÖС£Èç¹ûÕâ¸öвåÈëµÄÊý¾Ý±È´ó¶¥¶ÑµÄ¶Ñ¶¥Êý¾ÝС£¬ÄǾͲåÈë´ó¶¥¶Ñ;Èç¹ûÕâ¸öвåÈëµÄÊý¾Ý±ÈС¶¥¶ÑµÄ¶Ñ¶¥Êý¾Ý´ó£¬ÄǾͲåÈëС¶¥¶Ñ¡£
µ«ÊÇ£¬ÎªÁ˱£³Ö´ó¶¥¶ÑÖеÄÊý¾ÝÕ¼ 99%£¬Ð¡¶¥¶ÑÖеÄÊý¾ÝÕ¼ 1%£¬ÔÚÿ´ÎвåÈëÊý¾ÝÖ®ºó£¬ÎÒÃǶ¼ÒªÖØÐ¼ÆË㣬Õâ¸öʱºò´ó¶¥¶ÑºÍС¶¥¶ÑÖеÄÊý¾Ý¸öÊý£¬ÊÇ·ñ»¹·ûºÏ 99:1 Õâ¸ö±ÈÀý¡£Èç¹û²»·ûºÏ£¬ÎÒÃǾͽ«Ò»¸ö¶ÑÖеÄÊý¾ÝÒÆ¶¯µ½ÁíÒ»¸ö¶Ñ£¬Ö±µ½Âú×ãÕâ¸ö±ÈÀý¡£Òƶ¯µÄ·½·¨ÀàËÆÇ°ÃæÇóÖÐλÊýµÄ·½·¨£¬ÕâÀïÎҾͲ»†ªàÂÁË¡£
ͨ¹ýÕâÑùµÄ·½·¨£¬Ã¿´Î²åÈëÊý¾Ý£¬¿ÉÄÜ»áÉæ¼°¼¸¸öÊý¾ÝµÄ¶Ñ»¯²Ù×÷£¬ËùÒÔʱ¼ä¸´ÔÓ¶ÈÊÇ O(logn)¡£Ã¿´ÎÇó 99% ÏìӦʱ¼äµÄʱºò£¬Ö±½Ó·µ»Ø´ó¶¥¶ÑÖеĶѶ¥Êý¾Ý¼´¿É£¬Ê±¼ä¸´ÔÓ¶ÈÊÇ O(1)¡£
½â´ð¿ªÆª
ѧ¶®ÁËÉÏÃæµÄһЩӦÓó¡¾°µÄ´¦Àí˼·£¬ÎÒÏëÄãÓ¦¸ÃÄܽâ¾ö¿ªÆªµÄÄǸöÎÊÌâÁ˰ɡ£¼ÙÉèÏÖÔÚÎÒÃÇÓÐÒ»¸ö°üº¬ 10 ÒÚ¸öËÑË÷¹Ø¼ü´ÊµÄÈÕÖ¾Îļþ£¬ÈçºÎ¿ìËÙ»ñÈ¡µ½ Top 10 ×îÈÈÃŵÄËÑË÷¹Ø¼ü´ÊÄØ?
´¦ÀíÕâ¸öÎÊÌ⣬Óкܶà¸ß¼¶µÄ½â¾ö·½·¨£¬±ÈÈçʹÓà MapReduce µÈ¡£µ«ÊÇ£¬Èç¹ûÎÒÃǽ«´¦ÀíµÄ³¡¾°ÏÞ¶¨Îªµ¥»ú£¬¿ÉÒÔʹÓõÄÄÚ´æÎª 1GB¡£ÄÇÕâ¸öÎÊÌâ¸ÃÈçºÎ½â¾öÄØ?
ÒòΪÓû§ËÑË÷µÄ¹Ø¼ü´Ê£¬Óкܶà¿ÉÄܶ¼ÊÇÖØ¸´µÄ£¬ËùÒÔÎÒÃÇÊ×ÏÈҪͳ¼ÆÃ¿¸öËÑË÷¹Ø¼ü´Ê³öÏֵįµÂÊ¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÉ¢ÁÐ±í¡¢Æ½ºâ¶þ²æ²éÕÒÊ÷»òÕ߯äËûһЩ֧³Ö¿ìËÙ²éÕÒ¡¢²åÈëµÄÊý¾Ý½á¹¹£¬À´¼Ç¼¹Ø¼ü´Ê¼°Æä³öÏֵĴÎÊý¡£
¼ÙÉèÎÒÃÇÑ¡ÓÃÉ¢ÁÐ±í¡£ÎÒÃǾÍ˳ÐòɨÃèÕâ 10 ÒÚ¸öËÑË÷¹Ø¼ü´Ê¡£µ±É¨Ã赽ij¸ö¹Ø¼ü´Êʱ£¬ÎÒÃÇȥɢÁбíÖвéѯ¡£Èç¹û´æÔÚ£¬ÎÒÃǾͽ«¶ÔÓ¦µÄ´ÎÊý¼ÓÒ»;Èç¹û²»´æÔÚ£¬ÎÒÃǾͽ«Ëü²åÈ뵽ɢÁÐ±í£¬²¢¼Ç¼´ÎÊýΪ 1¡£ÒÔ´ËÀàÍÆ£¬µÈ±éÀúÍêÕâ 10 ÒÚ¸öËÑË÷¹Ø¼ü´ÊÖ®ºó£¬É¢ÁбíÖоʹ洢Á˲»Öظ´µÄËÑË÷¹Ø¼ü´ÊÒÔ¼°³öÏֵĴÎÊý¡£
È»ºó£¬ÎÒÃÇÔÙ¸ù¾ÝÇ°Ãæ½²µÄÓöÑÇó Top K µÄ·½·¨£¬½¨Á¢Ò»¸ö´óСΪ 10 µÄС¶¥¶Ñ£¬±éÀúÉ¢ÁÐ±í£¬ÒÀ´ÎÈ¡³öÿ¸öËÑË÷¹Ø¼ü´Ê¼°¶ÔÓ¦³öÏֵĴÎÊý£¬È»ºóÓë¶Ñ¶¥µÄËÑË÷¹Ø¼ü´Ê¶Ô±È¡£Èç¹û³öÏÖ´ÎÊý±È¶Ñ¶¥ËÑË÷¹Ø¼ü´ÊµÄ´ÎÊý¶à£¬ÄǾÍɾ³ý¶Ñ¶¥µÄ¹Ø¼ü´Ê£¬½«Õâ¸ö³öÏÖ´ÎÊý¸ü¶àµÄ¹Ø¼ü´Ê¼ÓÈëµ½¶ÑÖС£
ÒÔ´ËÀàÍÆ£¬µ±±éÀúÍêÕû¸öÉ¢ÁбíÖеÄËÑË÷¹Ø¼ü´ÊÖ®ºó£¬¶ÑÖеÄËÑË÷¹Ø¼ü´Ê¾ÍÊdzöÏÖ´ÎÊý×î¶àµÄ Top 10 ËÑË÷¹Ø¼ü´ÊÁË¡£
²»ÖªµÀÄã·¢ÏÖÁËûÓУ¬ÉÏÃæµÄ½â¾ö˼·Æäʵ´æÔÚ©¶´¡£10 ÒڵĹؼü´Ê»¹ÊǺܶàµÄ¡£ÎÒÃǼÙÉè 10 ÒÚÌõËÑË÷¹Ø¼ü´ÊÖв»Öظ´µÄÓÐ 1 ÒÚÌõ£¬Èç¹ûÿ¸öËÑË÷¹Ø¼ü´ÊµÄƽ¾ù³¤¶ÈÊÇ 50 ¸ö×Ö½Ú£¬ÄÇ´æ´¢ 1 ÒÚ¸ö¹Ø¼ü´ÊÆðÂëÐèÒª 5GB µÄÄÚ´æ¿Õ¼ä£¬¶øÉ¢ÁбíÒòΪҪ±ÜÃâÆµ·±³åÍ»£¬²»»áÑ¡ÔñÌ«´óµÄ×°ÔØÒò×Ó£¬ËùÒÔÏûºÄµÄÄÚ´æ¿Õ¼ä¾Í¸ü¶àÁË¡£¶øÎÒÃǵĻúÆ÷Ö»ÓÐ 1GB µÄ¿ÉÓÃÄÚ´æ¿Õ¼ä£¬ËùÒÔÎÒÃÇÎÞ·¨Ò»´ÎÐÔ½«ËùÓеÄËÑË÷¹Ø¼ü´Ê¼ÓÈëµ½ÄÚ´æÖС£Õâ¸öʱºò¸ÃÔõô°ìÄØ?
ÎÒÃÇÔÚ¹þÏ£Ëã·¨ÄÇÒ»½Ú½²¹ý£¬ÏàͬÊý¾Ý¾¹ý¹þÏ£Ëã·¨µÃµ½µÄ¹þÏ£ÖµÊÇÒ»ÑùµÄ¡£ÎÒÃÇ¿ÉÒÔ¹þÏ£Ëã·¨µÄÕâ¸öÌØµã£¬½« 10 ÒÚÌõËÑË÷¹Ø¼ü´ÊÏÈͨ¹ý¹þÏ£Ëã·¨·ÖƬµ½ 10 ¸öÎļþÖС£
¾ßÌå¿ÉÒÔÕâÑù×ö£ºÎÒÃÇ´´½¨ 10 ¸ö¿ÕÎļþ 00£¬01£¬02£¬……£¬09¡£ÎÒÃDZéÀúÕâ 10 ÒÚ¸ö¹Ø¼ü´Ê£¬²¢ÇÒͨ¹ýij¸ö¹þÏ£Ëã·¨¶ÔÆäÇó¹þÏ£Öµ£¬È»ºó¹þϣֵͬ 10 ȡ죬µÃµ½µÄ½á¹û¾ÍÊÇÕâ¸öËÑË÷¹Ø¼ü´ÊÓ¦¸Ã±»·Öµ½µÄÎļþ±àºÅ¡£
¶ÔÕâ 10 ÒÚ¸ö¹Ø¼ü´Ê·ÖƬ֮ºó£¬Ã¿¸öÎļþ¶¼Ö»ÓÐ 1 ÒڵĹؼü´Ê£¬È¥³ýµôÖØ¸´µÄ£¬¿ÉÄܾÍÖ»ÓÐ 1000 Íò¸ö£¬Ã¿¸ö¹Ø¼ü´Êƽ¾ù 50 ¸ö×Ö½Ú£¬ËùÒÔ×ܵĴóС¾ÍÊÇ 500MB¡£1GB µÄÄÚ´æÍêÈ«¿ÉÒԷŵÃÏ¡£
ÎÒÃÇÕë¶Ôÿ¸ö°üº¬ 1 ÒÚÌõËÑË÷¹Ø¼ü´ÊµÄÎļþ£¬ÀûÓÃÉ¢ÁбíºÍ¶Ñ£¬·Ö±ðÇó³ö Top 10£¬È»ºó°ÑÕâ¸ö 10 ¸ö Top 10 ·ÅÔÚÒ»¿é£¬È»ºóÈ¡Õâ 100 ¸ö¹Ø¼ü´ÊÖУ¬³öÏÖ´ÎÊý×î¶àµÄ 10 ¸ö¹Ø¼ü´Ê£¬Õâ¾ÍÊÇÕâ 10 ÒÚÊý¾ÝÖÐµÄ Top 10 ×îÆµ·±µÄËÑË÷¹Ø¼ü´ÊÁË¡£
ÄÚÈÝС½á
ÎÒÃǽñÌìÖ÷Òª½²Á˶ѵöÖØÒªµÄÓ¦Óã¬ËüÃÇ·Ö±ðÊÇ£ºÓÅÏȼ¶¶ÓÁС¢Çó Top K ÎÊÌâºÍÇóÖÐλÊýÎÊÌâ¡£
ÓÅÏȼ¶¶ÓÁÐÊÇÒ»ÖÖÌØÊâµÄ¶ÓÁУ¬ÓÅÏȼ¶¸ßµÄÊý¾ÝÏȳö¶Ó£¬¶ø²»ÔÙÏñÆÕͨµÄ¶ÓÁÐÄÇÑù£¬ÏȽøÏȳö¡£Êµ¼ÊÉÏ£¬¶Ñ¾Í¿ÉÒÔ¿´×÷ÓÅÏȼ¶¶ÓÁУ¬Ö»ÊdzÆÎ½²»Ò»Ñù°ÕÁË¡£Çó Top K ÎÊÌâÓÖ¿ÉÒÔ·ÖΪÕë¶Ô¾²Ì¬Êý¾ÝºÍÕë¶Ô¶¯Ì¬Êý¾Ý£¬Ö»ÐèÒªÀûÓÃÒ»¸ö¶Ñ£¬¾Í¿ÉÒÔ×öµ½·Ç³£¸ßЧÂʵIJéѯ Top K µÄÊý¾Ý¡£ÇóÖÐλÊýʵ¼ÊÉÏ»¹Óкܶà±äÐΣ¬±ÈÈçÇó 99 °Ù·ÖλÊý¾Ý¡¢90 °Ù·ÖλÊý¾ÝµÈ£¬´¦ÀíµÄ˼·¶¼ÊÇÒ»ÑùµÄ£¬¼´ÀûÓÃÁ½¸ö¶Ñ£¬Ò»¸ö´ó¶¥¶Ñ£¬Ò»¸öС¶¥¶Ñ£¬Ëæ×ÅÊý¾ÝµÄ¶¯Ì¬Ìí¼Ó£¬¶¯Ì¬µ÷ÕûÁ½¸ö¶ÑÖеÄÊý¾Ý£¬×îºó´ó¶¥¶ÑµÄ¶Ñ¶¥ÔªËؾÍÊÇÒªÇóµÄÊý¾Ý¡£
±±¾©Ð£Çø