{"id":2106,"date":"2017-04-23T08:27:43","date_gmt":"2017-04-23T00:27:43","guid":{"rendered":"http:\/\/cn.hostease.com\/xueyuan\/?p=2106"},"modified":"2025-01-13T19:49:48","modified_gmt":"2025-01-13T11:49:48","slug":"%e7%bb%8f%e5%85%b8%e7%ae%97%e6%b3%95%e9%a2%98%e6%af%8f%e6%97%a5%e6%bc%94%e7%bb%83-%e7%ac%ac%e5%8d%81%e5%85%ab%e9%a2%98-%e5%a4%96%e6%8e%92%e5%ba%8f","status":"publish","type":"post","link":"https:\/\/cn.hostease.com\/xueyuan\/jishu\/%e7%bb%8f%e5%85%b8%e7%ae%97%e6%b3%95%e9%a2%98%e6%af%8f%e6%97%a5%e6%bc%94%e7%bb%83-%e7%ac%ac%e5%8d%81%e5%85%ab%e9%a2%98-%e5%a4%96%e6%8e%92%e5%ba%8f\/","title":{"rendered":"\u7ecf\u5178\u7b97\u6cd5\u9898\u6bcf\u65e5\u6f14\u7ec3\u2014\u2014\u7b2c\u5341\u516b\u9898 \u5916\u6392\u5e8f"},"content":{"rendered":"\n<p>\u8bf4\u5230\u6392\u5e8f\uff0c\u5927\u5bb6\u7b2c\u4e00\u53cd\u5e94\u57fa\u672c\u4e0a\u662f\u5185\u6392\u5e8f\uff0c\u662f\u7684\uff0c\u7b97\u6cd5\u561b\uff0c\u73a9\u7684\u5c31\u662f\u5185\u5b58\uff0c\u7136\u800c\u5185\u5b58\u662f\u6709\u9650\u5236\u7684\uff0c\u603b\u6709\u88c5\u4e0d\u4e0b\u7684\u90a3\u4e00\u5929\uff0c\u6b64\u65f6\u5c31\u53ef\u4ee5\u6765\u73a9\u73a9<\/p>\n\n\n\n<p>\u5916\u6392\u5e8f\uff0c\u5f53\u7136\u5728\u6211\u770b\u6765\uff0c\u5916\u6392\u5e8f\u8003\u9a8c\u7684\u662f\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u67b6\u6784\u80fd\u529b\uff0c\u800c\u4e0d\u4ec5\u4ec5\u5c40\u9650\u4e8e\u6392\u5e8f\u8fd9\u4e2a\u5c42\u6b21\u3002<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>\u4e00\uff1aN\u8def\u5f52\u5e76\u6392\u5e8f<\/p>\n\n\n\n<p>1.\u6982\u5e8f<\/p>\n\n\n\n<p>\u6211\u4eec\u77e5\u9053\u7b97\u6cd5\u4e2d\u6709\u4e00\u79cd\u53eb\u505a\u5206\u6cbb\u601d\u60f3\uff0c\u4e00\u4e2a\u5927\u95ee\u9898\u6211\u4eec\u53ef\u4ee5\u91c7\u53d6\u5206\u800c\u6cbb\u4e4b\uff0c\u5404\u4e2a\u7a81\u7834\uff0c\u5f53\u5b50\u95ee\u9898\u89e3\u51b3\u4e86\uff0c\u5927\u95ee\u9898\u4e5f\u5c31KO\u4e86\uff0c\u8fd8\u6709\u4e00\u70b9\u6211\u4eec\u77e5\u9053<\/p>\n\n\n\n<p>\u5185\u6392\u5e8f\u7684\u5f52\u5e76\u6392\u5e8f\u662f\u91c7\u7528\u4e8c\u8def\u5f52\u5e76\u7684\uff0c\u56e0\u4e3a\u5206\u6cbb\u540e\u6709LogN\u5c42\uff0c\u6bcf\u5c42\u4e24\u8def\u5f52\u5e76\u9700\u8981N\u7684\u65f6\u5019\uff0c\u6700\u540e\u590d\u6742\u5ea6\u4e3aNlogN\uff0c\u90a3\u4e48\u5916\u6392\u5e8f\u6211\u4eec\u53ef\u4ee5\u5c06\u8fd9\u4e2a\u201c\u4e8c\u201d<\/p>\n\n\n\n<p>\u6269\u5927\u5230M\uff0c\u4e5f\u5c31\u662f\u5c06\u4e00\u4e2a\u5927\u6587\u4ef6\u5206\u6210M\u4e2a\u5c0f\u6587\u4ef6\uff0c\u6bcf\u4e2a\u5c0f\u6587\u4ef6\u662f\u6709\u5e8f\u7684\uff0c\u7136\u540e\u5bf9\u5e94\u5728\u5185\u5b58\u4e2d\u6211\u4eec\u5f00M\u4e2a\u4f18\u5148\u961f\u5217\uff0c\u6bcf\u4e2a\u961f\u5217\u4ece\u5bf9\u5e94\u7f16\u53f7\u7684\u6587\u4ef6\u4e2d\u8bfb\u53d6<\/p>\n\n\n\n<p>TopN\u6761\u8bb0\u5f55\uff0c\u7136\u540e\u6211\u4eec\u4eceM\u8def\u961f\u5217\u4e2d\u5404\u53d6\u4e00\u4e2a\u6570\u5b57\u8fdb\u5165\u4e2d\u8f6c\u7ad9\u961f\u5217\uff0c\u5e76\u5c06\u8be5\u6570\u5b57\u6253\u4e0a\u961f\u5217\u7f16\u53f7\u6807\u8bb0\uff0c\u5f53\u4ece\u4e2d\u8f6c\u7ad9\u51fa\u6765\u7684\u6700\u5c0f\u6570\u5b57\u5c31\u662f\u6211\u4eec\u6700\u540e\u8981\u6392<\/p>\n\n\n\n<p>\u5e8f\u7684\u6570\u5b57\u4e4b\u4e00\uff0c\u56e0\u4e3a\u8be5\u6570\u5b57\u6253\u4e0a\u4e86\u961f\u5217\u7f16\u53f7\uff0c\u6240\u4ee5\u65b9\u4fbf\u6211\u4eec\u901a\u77e5\u5bf9\u5e94\u7684\u7f16\u53f7\u961f\u5217\u7ee7\u7eed\u51fa\u6570\u5b57\u8fdb\u5165\u4e2d\u8f6c\u7ad9\u961f\u5217\uff0c\u53ef\u4ee5\u770b\u51fa\u4e2d\u8f6c\u7ad9\u4e00\u76f4\u4fdd\u5b58\u4e86M\u4e2a\u8bb0\u5f55\uff0c<\/p>\n\n\n\n<p>\u5f53\u4e2d\u8f6c\u7ad9\u4e2d\u7684\u6240\u6709\u6570\u5b57\u90fd\u51fa\u961f\u5b8c\u6bd5\uff0c\u5219\u5916\u6392\u5e8f\u7ed3\u675f\u3002\u5982\u679c\u5927\u5bb6\u6709\u70b9\u8499\u7684\u8bdd\uff0c\u6211\u518d\u914d\u5408\u4e00\u5f20\u56fe\uff0c\u76f8\u4fe1\u5927\u5bb6\u5c31\u4f1a\u4e00\u76ee\u4e86\u7136\uff0c\u8fd9\u8003\u9a8c\u7684\u662f\u6211\u4eec\u7684\u67b6\u6784\u80fd\u529b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/bath.png\"><img loading=\"lazy\" decoding=\"async\" width=\"883\" height=\"349\" src=\"https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/bath.png\" alt=\"\" class=\"wp-image-9104\" srcset=\"https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/bath.png 883w, https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/bath-300x119.png 300w, https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/bath-768x304.png 768w\" sizes=\"auto, (max-width: 883px) 100vw, 883px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u56fe\u4e2d\u8fd9\u91cc\u6709\u4e2aBatch\u5bb9\u5668\uff0c\u8fd9\u4e2a\u5bb9\u5668\u6211\u662f\u57fa\u4e8e\u6027\u80fd\u8003\u8651\u7684\uff0c\u5f53batch=n\u65f6\uff0c\u6211\u4eec\u5b9a\u65f6\u5237\u65b0\u5230\u6587\u4ef6\u4e2d\uff0c\u4fdd\u8bc1\u5185\u5b58\u6709\u8db3\u591f\u7684\u7a7a\u95f4\u3002<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>2.\u6784\u5efa<\/p>\n\n\n\n<p>&lt;1&gt; \u751f\u6210\u6570\u636e<\/p>\n\n\n\n<p>\u8fd9\u4e2a\u57fa\u672c\u6ca1\u4ec0\u4e48\u597d\u8bf4\u7684\uff0c\u91c7\u7528\u968f\u673a\u6570\u751f\u6210n\u6761\u8bb0\u5f55\u3002<\/p>\n\n\n\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div>\n<div id=\"highlighter_373626\" class=\"syntaxhighlighter  csharp\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"csharp preprocessor\">#region \u968f\u673a\u751f\u6210\u6570\u636e<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"csharp color1\">\/\/\/ &lt;summary&gt;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"csharp color1\">\/\/\/ \u968f\u673a\u751f\u6210\u6570\u636e<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"csharp color1\">\/\/\/&lt;param name=\"max\"&gt;\u6267\u884c\u751f\u6210\u7684\u6570\u636e\u4e0a\u7ebf&lt;\/param&gt;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"csharp color1\">\/\/\/ &lt;\/summary&gt;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"csharp keyword\">public<\/code> <code class=\"csharp keyword\">static<\/code> <code class=\"csharp keyword\">void<\/code> <code class=\"csharp plain\">CreateData(<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">max)<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">sw = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">StreamWriter(Environment.CurrentDirectory + <\/code><code class=\"csharp string\">\"\/\/demo.txt\"<\/code><code class=\"csharp plain\">);<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">for<\/code> <code class=\"csharp plain\">(<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">i = 0; i &lt; max; i++)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">Thread.Sleep(2);<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">rand = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">Random((<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">)DateTime.Now.Ticks).Next(0, <\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">.MaxValue &gt;&gt; 3);<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">sw.WriteLine(rand);<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">sw.Close();<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"csharp preprocessor\">#endregion<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>&lt;2&gt; \u5207\u5206\u6570\u636e<br>\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u6211\u4eec\u6765\u51b3\u5b9a\u5230\u5e95\u8981\u5206\u6210\u591a\u5c11\u4e2a\u5c0f\u6587\u4ef6\uff0c\u5e76\u4e14\u5c0f\u6587\u4ef6\u7684\u6570\u636e\u5fc5\u987b\u662f\u6709\u5e8f\u7684\uff0c\u5c0f\u6587\u4ef6\u7684\u4e2a\u6570\u4e5f\u5bf9\u5e94\u8fd9\u5185\u5b58\u4e2d\u6709\u591a\u5c11\u4e2a\u4f18\u5148\u961f\u5217\u3002<\/p>\n\n\n\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div>\n<div id=\"highlighter_455947\" class=\"syntaxhighlighter  csharp\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<div class=\"line number58 index57 alt1\">58<\/div>\n<div class=\"line number59 index58 alt2\">59<\/div>\n<div class=\"line number60 index59 alt1\">60<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"csharp preprocessor\">#region \u5c06\u6570\u636e\u8fdb\u884c\u5206\u4efd<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"csharp color1\">\/\/\/ &lt;summary&gt;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"csharp color1\">\/\/\/ \u5c06\u6570\u636e\u8fdb\u884c\u5206\u4efd<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"csharp color1\">\/\/\/ &lt;param name=\"size\"&gt;\u6bcf\u9875\u8981\u663e\u793a\u7684\u6761\u6570&lt;\/param&gt;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"csharp color1\">\/\/\/ &lt;\/summary&gt;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"csharp keyword\">public<\/code> <code class=\"csharp keyword\">static<\/code> <code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">Split(<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">size)<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u6587\u4ef6\u603b\u8bb0\u5f55\u6570<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">totalCount = 0;<\/code><\/div>\n<div class=\"line number10 index9 alt1\">&nbsp;<\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u6bcf\u4e00\u4efd\u6587\u4ef6\u5b58\u653e size \u6761 \u8bb0\u5f55<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">List&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">&gt; small = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">List&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">&gt;();<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">sr = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">StreamReader((Environment.CurrentDirectory + <\/code><code class=\"csharp string\">\"\/\/demo.txt\"<\/code><code class=\"csharp plain\">));<\/code><\/div>\n<div class=\"line number15 index14 alt2\">&nbsp;<\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">pageSize = size;<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">pageCount = 0;<\/code><\/div>\n<div class=\"line number19 index18 alt2\">&nbsp;<\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">pageIndex = 0;<\/code><\/div>\n<div class=\"line number21 index20 alt2\">&nbsp;<\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">while<\/code> <code class=\"csharp plain\">(<\/code><code class=\"csharp keyword\">true<\/code><code class=\"csharp plain\">)<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">line = sr.ReadLine();<\/code><\/div>\n<div class=\"line number25 index24 alt2\">&nbsp;<\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(!<\/code><code class=\"csharp keyword\">string<\/code><code class=\"csharp plain\">.IsNullOrEmpty(line))<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">totalCount++;<\/code><\/div>\n<div class=\"line number29 index28 alt2\">&nbsp;<\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u52a0\u5165\u5c0f\u96c6\u5408\u4e2d<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">small.Add(Convert.ToInt32(line));<\/code><\/div>\n<div class=\"line number32 index31 alt1\">&nbsp;<\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u8bf4\u660e\u5df2\u7ecf\u5230\u8fbe\u6307\u5b9a\u7684 size \u6761\u6570\u4e86<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(totalCount % pageSize == 0)<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">pageIndex = totalCount \/ pageSize;<\/code><\/div>\n<div class=\"line number37 index36 alt2\">&nbsp;<\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">small = small.OrderBy(i =&gt; i).Select(i =&gt; i).ToList();<\/code><\/div>\n<div class=\"line number39 index38 alt2\">&nbsp;<\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">File.WriteAllLines(Environment.CurrentDirectory + <\/code><code class=\"csharp string\">\"\/\/\"<\/code> <code class=\"csharp plain\">+ pageIndex + <\/code><code class=\"csharp string\">\".txt\"<\/code><code class=\"csharp plain\">, small.Select(i =&gt; i.ToString()));<\/code><\/div>\n<div class=\"line number41 index40 alt2\">&nbsp;<\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">small.Clear();<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">else<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u8bf4\u660e\u5df2\u7ecf\u8bfb\u5b8c\u4e86\uff0c\u5c06\u5269\u4f59\u7684small\u8bb0\u5f55\u5199\u5165\u5230\u6587\u4ef6\u4e2d<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">pageCount = (<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">)Math.Ceiling((<\/code><code class=\"csharp keyword\">double<\/code><code class=\"csharp plain\">)totalCount \/ pageSize);<\/code><\/div>\n<div class=\"line number49 index48 alt2\">&nbsp;<\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">small = small.OrderBy(i =&gt; i).Select(i =&gt; i).ToList();<\/code><\/div>\n<div class=\"line number51 index50 alt2\">&nbsp;<\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">File.WriteAllLines(Environment.CurrentDirectory + <\/code><code class=\"csharp string\">\"\/\/\"<\/code> <code class=\"csharp plain\">+ pageCount + <\/code><code class=\"csharp string\">\".txt\"<\/code><code class=\"csharp plain\">, small.Select(i =&gt; i.ToString()));<\/code><\/div>\n<div class=\"line number53 index52 alt2\">&nbsp;<\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">break<\/code><code class=\"csharp plain\">;<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number57 index56 alt2\">&nbsp;<\/div>\n<div class=\"line number58 index57 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">return<\/code> <code class=\"csharp plain\">pageCount;<\/code><\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"csharp preprocessor\">#endregion<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>&lt;3&gt; \u52a0\u5165\u961f\u5217<\/p>\n\n\n\n<p>\u6211\u4eec\u77e5\u9053\u5185\u5b58\u961f\u5217\u5b58\u653e\u7684\u53ea\u662f\u5c0f\u6587\u4ef6\u7684topN\u6761\u8bb0\u5f55\uff0c\u5f53\u5185\u5b58\u961f\u5217\u4e3a\u7a7a\u65f6\uff0c\u6211\u4eec\u9700\u8981\u518d\u6b21\u4ece\u5c0f\u6587\u4ef6\u4e2d\u8bfb\u53d6\u4e0b\u4e00\u6279\u7684TopN\u6761\u6570\u636e\uff0c\u7136\u540e\u653e\u5165\u4e2d\u8f6c\u7ad9<\/p>\n\n\n\n<p>\u7ee7\u7eed\u8fdb\u884c\u6bd4\u8f83\u3002<\/p>\n\n\n\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div>\n<div id=\"highlighter_244760\" class=\"syntaxhighlighter  csharp\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"csharp preprocessor\">#region \u5c06\u6570\u636e\u52a0\u5165\u6307\u5b9a\u7f16\u53f7\u961f\u5217<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ &lt;summary&gt;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ \u5c06\u6570\u636e\u52a0\u5165\u6307\u5b9a\u7f16\u53f7\u961f\u5217<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ &lt;\/summary&gt;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ &lt;param name=\"i\"&gt;\u961f\u5217\u7f16\u53f7&lt;\/param&gt;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ &lt;param name=\"skip\"&gt;\u6587\u4ef6\u4e2d\u8df3\u8fc7\u7684\u6761\u6570&lt;\/param&gt;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ &lt;param name=\"list\"&gt;&lt;\/param&gt;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp color1\">\/\/\/ &lt;param name=\"top\"&gt;\u9700\u8981\u6bcf\u6b21\u8bfb\u53d6\u7684\u6761\u6570&lt;\/param&gt;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">public<\/code> <code class=\"csharp keyword\">static<\/code> <code class=\"csharp keyword\">void<\/code> <code class=\"csharp plain\">AddQueue(<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">i, List&lt;PriorityQueue&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">?&gt;&gt; list, <\/code><code class=\"csharp keyword\">ref<\/code> <code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">[] skip, <\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">top = 100)<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">result = File.ReadAllLines((Environment.CurrentDirectory + <\/code><code class=\"csharp string\">\"\/\/\"<\/code> <code class=\"csharp plain\">+ (i + 1) + <\/code><code class=\"csharp string\">\".txt\"<\/code><code class=\"csharp plain\">))<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">.Skip(skip[i]).Take(top).Select(j =&gt; Convert.ToInt32(j));<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u52a0\u5165\u5230\u96c6\u5408\u4e2d<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">foreach<\/code> <code class=\"csharp plain\">(<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">item <\/code><code class=\"csharp keyword\">in<\/code> <code class=\"csharp plain\">result)<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">list[i].Eequeue(<\/code><code class=\"csharp keyword\">null<\/code><code class=\"csharp plain\">, item);<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5c06\u4e2a\u6570\u7d2f\u8ba1\u5230skip\u4e2d\uff0c\u8868\u793a\u4e0b\u6b21\u8981\u8df3\u8fc7\u7684\u8bb0\u5f55\u6570<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">skip[i] += result.Count();<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp preprocessor\">#endregion<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>&lt;4&gt; \u6d4b\u8bd5<\/p>\n\n\n\n<p>\u6700\u540e\u6211\u4eec\u6765\u6d4b\u8bd5\u4e00\u4e0b:<\/p>\n\n\n\n<p>\u6570\u636e\u91cf\uff1ashort.MaxValue\u3002<\/p>\n\n\n\n<p>\u5185\u5b58\u5b58\u653e\u91cf\uff1a1200\u3002<\/p>\n\n\n\n<p>\u5728\u8fd9\u79cd\u573a\u666f\u4e0b\uff0c\u6211\u4eec\u51b3\u5b9a\u6bcf\u4e2a\u6587\u4ef6\u653e1000\u6761\uff0c\u4e5f\u5c31\u670933\u4e2a\u5c0f\u6587\u4ef6\uff0c\u4e5f\u5c31\u670933\u4e2a\u5185\u5b58\u961f\u5217\uff0c\u6bcf\u4e2a\u961f\u5217\u53d6Top100\u6761\uff0cBatch=500\u65f6\u5237\u65b0<\/p>\n\n\n\n<p>\u786c\u76d8\uff0c\u4e2d\u8f6c\u7ad9\u5b58\u653e33*2\u4e2a\u6570\u5b57\uff08\u56e0\u4e3a\u5165\u4e2d\u8f6c\u7ad9\u65f6\u6253\u4e0a\u4e86\u961f\u5217\u6807\u8bb0\uff09,\u6700\u540e\u5185\u5b58\u6d3b\u52a8\u6700\u5927\u603b\u6570\u4e3a\uff1asum=33*100+500+66=896&lt;1200\u3002<\/p>\n\n\n\n<p>\u65f6\u95f4\u590d\u6742\u5ea6\u4e3aN*logN\u3002\u5f53\u7136\u8fd9\u4e2a\u201c\u9600\u503c\u201d\uff0c\u6211\u4eec\u53ef\u4ee5\u518d\u4ed4\u7ec6\u5fae\u8c03\u3002<\/p>\n\n\n\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div>\n<div id=\"highlighter_84425\" class=\"syntaxhighlighter  csharp\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<div class=\"line number58 index57 alt1\">58<\/div>\n<div class=\"line number59 index58 alt2\">59<\/div>\n<div class=\"line number60 index59 alt1\">60<\/div>\n<div class=\"line number61 index60 alt2\">61<\/div>\n<div class=\"line number62 index61 alt1\">62<\/div>\n<div class=\"line number63 index62 alt2\">63<\/div>\n<div class=\"line number64 index63 alt1\">64<\/div>\n<div class=\"line number65 index64 alt2\">65<\/div>\n<div class=\"line number66 index65 alt1\">66<\/div>\n<div class=\"line number67 index66 alt2\">67<\/div>\n<div class=\"line number68 index67 alt1\">68<\/div>\n<div class=\"line number69 index68 alt2\">69<\/div>\n<div class=\"line number70 index69 alt1\">70<\/div>\n<div class=\"line number71 index70 alt2\">71<\/div>\n<div class=\"line number72 index71 alt1\">72<\/div>\n<div class=\"line number73 index72 alt2\">73<\/div>\n<div class=\"line number74 index73 alt1\">74<\/div>\n<div class=\"line number75 index74 alt2\">75<\/div>\n<div class=\"line number76 index75 alt1\">76<\/div>\n<div class=\"line number77 index76 alt2\">77<\/div>\n<div class=\"line number78 index77 alt1\">78<\/div>\n<div class=\"line number79 index78 alt2\">79<\/div>\n<div class=\"line number80 index79 alt1\">80<\/div>\n<div class=\"line number81 index80 alt2\">81<\/div>\n<div class=\"line number82 index81 alt1\">82<\/div>\n<div class=\"line number83 index82 alt2\">83<\/div>\n<div class=\"line number84 index83 alt1\">84<\/div>\n<div class=\"line number85 index84 alt2\">85<\/div>\n<div class=\"line number86 index85 alt1\">86<\/div>\n<div class=\"line number87 index86 alt2\">87<\/div>\n<div class=\"line number88 index87 alt1\">88<\/div>\n<div class=\"line number89 index88 alt2\">89<\/div>\n<div class=\"line number90 index89 alt1\">90<\/div>\n<div class=\"line number91 index90 alt2\">91<\/div>\n<div class=\"line number92 index91 alt1\">92<\/div>\n<div class=\"line number93 index92 alt2\">93<\/div>\n<div class=\"line number94 index93 alt1\">94<\/div>\n<div class=\"line number95 index94 alt2\">95<\/div>\n<div class=\"line number96 index95 alt1\">96<\/div>\n<div class=\"line number97 index96 alt2\">97<\/div>\n<div class=\"line number98 index97 alt1\">98<\/div>\n<div class=\"line number99 index98 alt2\">99<\/div>\n<div class=\"line number100 index99 alt1\">100<\/div>\n<div class=\"line number101 index100 alt2\">101<\/div>\n<div class=\"line number102 index101 alt1\">102<\/div>\n<div class=\"line number103 index102 alt2\">103<\/div>\n<div class=\"line number104 index103 alt1\">104<\/div>\n<div class=\"line number105 index104 alt2\">105<\/div>\n<div class=\"line number106 index105 alt1\">106<\/div>\n<div class=\"line number107 index106 alt2\">107<\/div>\n<div class=\"line number108 index107 alt1\">108<\/div>\n<div class=\"line number109 index108 alt2\">109<\/div>\n<div class=\"line number110 index109 alt1\">110<\/div>\n<div class=\"line number111 index110 alt2\">111<\/div>\n<div class=\"line number112 index111 alt1\">112<\/div>\n<div class=\"line number113 index112 alt2\">113<\/div>\n<div class=\"line number114 index113 alt1\">114<\/div>\n<div class=\"line number115 index114 alt2\">115<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"csharp keyword\">public<\/code> <code class=\"csharp keyword\">static<\/code> <code class=\"csharp keyword\">void<\/code> <code class=\"csharp plain\">Main()<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u751f\u62102^15\u6570\u636e<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">CreateData(<\/code><code class=\"csharp keyword\">short<\/code><code class=\"csharp plain\">.MaxValue);<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u6bcf\u4e2a\u6587\u4ef6\u5b58\u653e1000\u6761<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">pageSize = 1000;<\/code><\/div>\n<div class=\"line number8 index7 alt1\">&nbsp;<\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u8fbe\u5230batchCount\u5c31\u5237\u65b0\u8bb0\u5f55<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">batchCount = 0;<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5224\u65ad\u9700\u8981\u5f00\u542f\u7684\u961f\u5217<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">pageCount = Split(pageSize);<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5185\u5b58\u9650\u5236\uff1a1500\u6761<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">List&lt;PriorityQueue&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">?&gt;&gt; list = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">List&lt;PriorityQueue&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">?&gt;&gt;();<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5b9a\u4e49\u4e00\u4e2a\u961f\u5217\u4e2d\u8f6c\u5668<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">PriorityQueue&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">?&gt; queueControl = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">PriorityQueue&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">?&gt;();<\/code><\/div>\n<div class=\"line number20 index19 alt1\">&nbsp;<\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5b9a\u4e49\u6bcf\u4e2a\u961f\u5217\u5b8c\u6210\u72b6\u6001<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">bool<\/code><code class=\"csharp plain\">[] complete = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp keyword\">bool<\/code><code class=\"csharp plain\">[pageCount];<\/code><\/div>\n<div class=\"line number23 index22 alt2\">&nbsp;<\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u961f\u5217\u8bfb\u53d6\u6587\u4ef6\u65f6\u5e94\u8be5\u8df3\u8fc7\u7684\u8bb0\u5f55\u6570<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">[] skip = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">[pageCount];<\/code><\/div>\n<div class=\"line number26 index25 alt1\">&nbsp;<\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u662f\u5426\u6240\u6709\u90fd\u5b8c\u6210\u4e86<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">allcomplete = 0;<\/code><\/div>\n<div class=\"line number29 index28 alt2\">&nbsp;<\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5b9a\u4e49 10 \u4e2a\u961f\u5217<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">for<\/code> <code class=\"csharp plain\">(<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">i = 0; i &lt; pageCount; i++)<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">list.Add(<\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">PriorityQueue&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">?&gt;());<\/code><\/div>\n<div class=\"line number34 index33 alt1\">&nbsp;<\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/i\uff1a&nbsp;&nbsp; \u8bb0\u5f55\u5f53\u524d\u7684\u961f\u5217\u7f16\u7801<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/list: \u961f\u5217\u6570\u636e<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/skip\uff1a\u8df3\u8fc7\u7684\u6761\u6570<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">AddQueue(i, list, <\/code><code class=\"csharp keyword\">ref<\/code> <code class=\"csharp plain\">skip);<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number40 index39 alt1\">&nbsp;<\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u521d\u59cb\u5316\u64cd\u4f5c\uff0c\u4ece\u6bcf\u4e2a\u961f\u5217\u4e2d\u53d6\u51fa\u4e00\u6761\u8bb0\u5f55\uff0c\u5e76\u4e14\u5728\u5165\u961f\u7684\u8fc7\u7a0b\u4e2d<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u8bb0\u5f55\u8be5\u6570\u636e\u6240\u5c5e\u7684 \u201c\u961f\u5217\u7f16\u53f7\u201d<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">for<\/code> <code class=\"csharp plain\">(<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">i = 0; i &lt; list.Count; i++)<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">temp = list[i].Dequeue();<\/code><\/div>\n<div class=\"line number46 index45 alt1\">&nbsp;<\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/i:\u961f\u5217\u7f16\u7801,level:\u8981\u6392\u5e8f\u7684\u6570\u636e<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">queueControl.Eequeue(i, temp.level);<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number50 index49 alt1\">&nbsp;<\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u9ed8\u8ba4500\u6761\u5199\u5165\u4e00\u6b21\u6587\u4ef6<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">List&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">&gt; batch = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">List&lt;<\/code><code class=\"csharp keyword\">int<\/code><code class=\"csharp plain\">&gt;();<\/code><\/div>\n<div class=\"line number53 index52 alt2\">&nbsp;<\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u8bb0\u5f55\u4e0b\u6b21\u5e94\u8be5\u4ece\u54ea\u4e00\u4e2a\u961f\u5217\u4e2d\u63d0\u53d6\u6570\u636e<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">int<\/code> <code class=\"csharp plain\">nextIndex = 0;<\/code><\/div>\n<div class=\"line number56 index55 alt1\">&nbsp;<\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">while<\/code> <code class=\"csharp plain\">(queueControl.Count() &gt; 0)<\/code><\/div>\n<div class=\"line number58 index57 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u4ece\u4e2d\u8f6c\u5668\u4e2d\u63d0\u53d6\u6570\u636e<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">single = queueControl.Dequeue();<\/code><\/div>\n<div class=\"line number61 index60 alt2\">&nbsp;<\/div>\n<div class=\"line number62 index61 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u8bb0\u5f55\u4e0b\u4e00\u4e2a\u961f\u5217\u603b\u5e94\u8be5\u51fa\u961f\u7684\u6570\u636e<\/code><\/div>\n<div class=\"line number63 index62 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">nextIndex = single.t.Value;<\/code><\/div>\n<div class=\"line number64 index63 alt1\">&nbsp;<\/div>\n<div class=\"line number65 index64 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">nextData = list[nextIndex].Dequeue();<\/code><\/div>\n<div class=\"line number66 index65 alt1\">&nbsp;<\/div>\n<div class=\"line number67 index66 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5982\u679c\u6539\u5bf9\u5185\u5f39\u51fa\u4e3anull\uff0c\u5219\u8bf4\u660e\u8be5\u961f\u5217\u5df2\u7ecf\uff0c\u9700\u8981\u4ecenextIndex\u6587\u4ef6\u4e2d\u8bfb\u53d6\u6570\u636e<\/code><\/div>\n<div class=\"line number68 index67 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(nextData == <\/code><code class=\"csharp keyword\">null<\/code><code class=\"csharp plain\">)<\/code><\/div>\n<div class=\"line number69 index68 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number70 index69 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5982\u679c\u8be5\u961f\u5217\u6ca1\u6709\u5168\u90e8\u8bfb\u53d6\u5b8c\u6bd5<\/code><\/div>\n<div class=\"line number71 index70 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(!complete[nextIndex])<\/code><\/div>\n<div class=\"line number72 index71 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number73 index72 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">AddQueue(nextIndex, list, <\/code><code class=\"csharp keyword\">ref<\/code> <code class=\"csharp plain\">skip);<\/code><\/div>\n<div class=\"line number74 index73 alt1\">&nbsp;<\/div>\n<div class=\"line number75 index74 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5982\u679c\u4ece\u6587\u4ef6\u4e2d\u8bfb\u53d6\u8fd8\u662f\u6ca1\u6709\uff0c\u5219\u8bf4\u660e\u6539\u6587\u4ef6\u4e2d\u5df2\u7ecf\u6ca1\u6709\u6570\u636e\u4e86<\/code><\/div>\n<div class=\"line number76 index75 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(list[nextIndex].Count() == 0)<\/code><\/div>\n<div class=\"line number77 index76 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number78 index77 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">complete[nextIndex] = <\/code><code class=\"csharp keyword\">true<\/code><code class=\"csharp plain\">;<\/code><\/div>\n<div class=\"line number79 index78 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">allcomplete++;<\/code><\/div>\n<div class=\"line number80 index79 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number81 index80 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">else<\/code><\/div>\n<div class=\"line number82 index81 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number83 index82 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">nextData = list[nextIndex].Dequeue();<\/code><\/div>\n<div class=\"line number84 index83 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number85 index84 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number86 index85 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number87 index86 alt2\">&nbsp;<\/div>\n<div class=\"line number88 index87 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5982\u679c\u5f39\u51fa\u7684\u6570\u4e0d\u4e3a\u7a7a\uff0c\u5219\u5c06\u8be5\u6570\u5165\u4e2d\u8f6c\u7ad9<\/code><\/div>\n<div class=\"line number89 index88 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(nextData != <\/code><code class=\"csharp keyword\">null<\/code><code class=\"csharp plain\">)<\/code><\/div>\n<div class=\"line number90 index89 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number91 index90 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5c06\u8981\u51fa\u961f\u7684\u6570\u636e \u8f6c\u5165 \u4e2d\u8f6c\u7ad9<\/code><\/div>\n<div class=\"line number92 index91 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">queueControl.Eequeue(nextIndex, nextData.level);<\/code><\/div>\n<div class=\"line number93 index92 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number94 index93 alt1\">&nbsp;<\/div>\n<div class=\"line number95 index94 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">batch.Add(single.level);<\/code><\/div>\n<div class=\"line number96 index95 alt1\">&nbsp;<\/div>\n<div class=\"line number97 index96 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp comments\">\/\/\u5982\u679cbatch=500\uff0c\u6216\u8005\u6240\u6709\u7684\u6587\u4ef6\u90fd\u5df2\u7ecf\u8bfb\u53d6\u5b8c\u6bd5\uff0c\u6b64\u65f6\u6211\u4eec\u8981\u6279\u91cf\u5237\u5165\u6570\u636e<\/code><\/div>\n<div class=\"line number98 index97 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">if<\/code> <code class=\"csharp plain\">(batch.Count == batchCount || allcomplete == pageCount)<\/code><\/div>\n<div class=\"line number99 index98 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number100 index99 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">sw = <\/code><code class=\"csharp keyword\">new<\/code> <code class=\"csharp plain\">StreamWriter(Environment.CurrentDirectory + <\/code><code class=\"csharp string\">\"\/\/result.txt\"<\/code><code class=\"csharp plain\">, <\/code><code class=\"csharp keyword\">true<\/code><code class=\"csharp plain\">);<\/code><\/div>\n<div class=\"line number101 index100 alt2\">&nbsp;<\/div>\n<div class=\"line number102 index101 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp keyword\">foreach<\/code> <code class=\"csharp plain\">(<\/code><code class=\"csharp keyword\">var<\/code> <code class=\"csharp plain\">item <\/code><code class=\"csharp keyword\">in<\/code> <code class=\"csharp plain\">batch)<\/code><\/div>\n<div class=\"line number103 index102 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">{<\/code><\/div>\n<div class=\"line number104 index103 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">sw.WriteLine(item);<\/code><\/div>\n<div class=\"line number105 index104 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number106 index105 alt1\">&nbsp;<\/div>\n<div class=\"line number107 index106 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">sw.Close();<\/code><\/div>\n<div class=\"line number108 index107 alt1\">&nbsp;<\/div>\n<div class=\"line number109 index108 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">batch.Clear();<\/code><\/div>\n<div class=\"line number110 index109 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number111 index110 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<div class=\"line number112 index111 alt1\">&nbsp;<\/div>\n<div class=\"line number113 index112 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">Console.WriteLine(<\/code><code class=\"csharp string\">\"\u606d\u559c\uff0c\u5916\u6392\u5e8f\u5b8c\u6bd5\uff01\"<\/code><code class=\"csharp plain\">);<\/code><\/div>\n<div class=\"line number114 index113 alt1\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">Console.Read();<\/code><\/div>\n<div class=\"line number115 index114 alt2\"><code class=\"csharp spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"csharp plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/demo.png\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"572\" src=\"https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/demo.png\" alt=\"\" class=\"wp-image-9105\" srcset=\"https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/demo.png 527w, https:\/\/cn.hostease.com\/xueyuan\/wp-content\/uploads\/2017\/04\/demo-276x300.png 276w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u603b\u7684\u4ee3\u7801\uff1a<\/p>\n\n\n\n<div class=\"cnblogs_code\">\n<div id=\"cnblogs_code_open_ab5cf5e5-6eab-47ae-937e-2c3bfcc33c21\" class=\"cnblogs_code_hide\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><\/span><\/div>\n<pre>  1 using System;\n  2 using System.Collections.Generic;\n  3 using System.Linq;\n  4 using System.Text;\n  5 using System.Diagnostics;\n  6 using System.Threading;\n  7 using System.IO;\n  8 using System.Threading.Tasks;\n  9 \n 10 namespace ConsoleApplication2\n 11 {\n 12     public class Program\n 13     {\n 14         public static void Main()\n 15         {\n 16             \/\/\u751f\u62102^15\u6570\u636e\n 17             CreateData(short.MaxValue);\n 18 \n 19             \/\/\u6bcf\u4e2a\u6587\u4ef6\u5b58\u653e1000\u6761\n 20             var pageSize = 1000;\n 21 \n 22             \/\/\u8fbe\u5230batchCount\u5c31\u5237\u65b0\u8bb0\u5f55\n 23             var batchCount = 0;\n 24 \n 25             \/\/\u5224\u65ad\u9700\u8981\u5f00\u542f\u7684\u961f\u5217\n 26             var pageCount = Split(pageSize);\n 27 \n 28             \/\/\u5185\u5b58\u9650\u5236\uff1a1500\u6761\n 29             List&lt;PriorityQueue&lt;int?&gt;&gt; list = new List&lt;PriorityQueue&lt;int?&gt;&gt;();\n 30 \n 31             \/\/\u5b9a\u4e49\u4e00\u4e2a\u961f\u5217\u4e2d\u8f6c\u5668\n 32             PriorityQueue&lt;int?&gt; queueControl = new PriorityQueue&lt;int?&gt;();\n 33 \n 34             \/\/\u5b9a\u4e49\u6bcf\u4e2a\u961f\u5217\u5b8c\u6210\u72b6\u6001\n 35             bool[] complete = new bool[pageCount];\n 36 \n 37             \/\/\u961f\u5217\u8bfb\u53d6\u6587\u4ef6\u65f6\u5e94\u8be5\u8df3\u8fc7\u7684\u8bb0\u5f55\u6570\n 38             int[] skip = new int[pageCount];\n 39 \n 40             \/\/\u662f\u5426\u6240\u6709\u90fd\u5b8c\u6210\u4e86\n 41             int allcomplete = 0;\n 42 \n 43             \/\/\u5b9a\u4e49 10 \u4e2a\u961f\u5217\n 44             for (int i = 0; i &lt; pageCount; i++)\n 45             {\n 46                 list.Add(new PriorityQueue&lt;int?&gt;());\n 47 \n 48                 \/\/i\uff1a   \u8bb0\u5f55\u5f53\u524d\u7684\u961f\u5217\u7f16\u7801\n 49                 \/\/list: \u961f\u5217\u6570\u636e\n 50                 \/\/skip\uff1a\u8df3\u8fc7\u7684\u6761\u6570\n 51                 AddQueue(i, list, ref skip);\n 52             }\n 53 \n 54             \/\/\u521d\u59cb\u5316\u64cd\u4f5c\uff0c\u4ece\u6bcf\u4e2a\u961f\u5217\u4e2d\u53d6\u51fa\u4e00\u6761\u8bb0\u5f55\uff0c\u5e76\u4e14\u5728\u5165\u961f\u7684\u8fc7\u7a0b\u4e2d\n 55             \/\/\u8bb0\u5f55\u8be5\u6570\u636e\u6240\u5c5e\u7684 \u201c\u961f\u5217\u7f16\u53f7\u201d\n 56             for (int i = 0; i &lt; list.Count; i++)\n 57             {\n 58                 var temp = list[i].Dequeue();\n 59 \n 60                 \/\/i:\u961f\u5217\u7f16\u7801,level:\u8981\u6392\u5e8f\u7684\u6570\u636e\n 61                 queueControl.Eequeue(i, temp.level);\n 62             }\n 63 \n 64             \/\/\u9ed8\u8ba4500\u6761\u5199\u5165\u4e00\u6b21\u6587\u4ef6\n 65             List&lt;int&gt; batch = new List&lt;int&gt;();\n 66 \n 67             \/\/\u8bb0\u5f55\u4e0b\u6b21\u5e94\u8be5\u4ece\u54ea\u4e00\u4e2a\u961f\u5217\u4e2d\u63d0\u53d6\u6570\u636e\n 68             int nextIndex = 0;\n 69 \n 70             while (queueControl.Count() &gt; 0)\n 71             {\n 72                 \/\/\u4ece\u4e2d\u8f6c\u5668\u4e2d\u63d0\u53d6\u6570\u636e\n 73                 var single = queueControl.Dequeue();\n 74 \n 75                 \/\/\u8bb0\u5f55\u4e0b\u4e00\u4e2a\u961f\u5217\u603b\u5e94\u8be5\u51fa\u961f\u7684\u6570\u636e\n 76                 nextIndex = single.t.Value;\n 77 \n 78                 var nextData = list[nextIndex].Dequeue();\n 79 \n 80                 \/\/\u5982\u679c\u6539\u5bf9\u5185\u5f39\u51fa\u4e3anull\uff0c\u5219\u8bf4\u660e\u8be5\u961f\u5217\u5df2\u7ecf\uff0c\u9700\u8981\u4ecenextIndex\u6587\u4ef6\u4e2d\u8bfb\u53d6\u6570\u636e\n 81                 if (nextData == null)\n 82                 {\n 83                     \/\/\u5982\u679c\u8be5\u961f\u5217\u6ca1\u6709\u5168\u90e8\u8bfb\u53d6\u5b8c\u6bd5\n 84                     if (!complete[nextIndex])\n 85                     {\n 86                         AddQueue(nextIndex, list, ref skip);\n 87 \n 88                         \/\/\u5982\u679c\u4ece\u6587\u4ef6\u4e2d\u8bfb\u53d6\u8fd8\u662f\u6ca1\u6709\uff0c\u5219\u8bf4\u660e\u6539\u6587\u4ef6\u4e2d\u5df2\u7ecf\u6ca1\u6709\u6570\u636e\u4e86\n 89                         if (list[nextIndex].Count() == 0)\n 90                         {\n 91                             complete[nextIndex] = true;\n 92                             allcomplete++;\n 93                         }\n 94                         else\n 95                         {\n 96                             nextData = list[nextIndex].Dequeue();\n 97                         }\n 98                     }\n 99                 }\n100 \n101                 \/\/\u5982\u679c\u5f39\u51fa\u7684\u6570\u4e0d\u4e3a\u7a7a\uff0c\u5219\u5c06\u8be5\u6570\u5165\u4e2d\u8f6c\u7ad9\n102                 if (nextData != null)\n103                 {\n104                     \/\/\u5c06\u8981\u51fa\u961f\u7684\u6570\u636e \u8f6c\u5165 \u4e2d\u8f6c\u7ad9\n105                     queueControl.Eequeue(nextIndex, nextData.level);\n106                 }\n107 \n108                 batch.Add(single.level);\n109 \n110                 \/\/\u5982\u679cbatch=500\uff0c\u6216\u8005\u6240\u6709\u7684\u6587\u4ef6\u90fd\u5df2\u7ecf\u8bfb\u53d6\u5b8c\u6bd5\uff0c\u6b64\u65f6\u6211\u4eec\u8981\u6279\u91cf\u5237\u5165\u6570\u636e\n111                 if (batch.Count == batchCount || allcomplete == pageCount)\n112                 {\n113                     var sw = new StreamWriter(Environment.CurrentDirectory + \"\/\/result.txt\", true);\n114 \n115                     foreach (var item in batch)\n116                     {\n117                         sw.WriteLine(item);\n118                     }\n119 \n120                     sw.Close();\n121 \n122                     batch.Clear();\n123                 }\n124             }\n125 \n126             Console.WriteLine(\"\u606d\u559c\uff0c\u5916\u6392\u5e8f\u5b8c\u6bd5\uff01\");\n127             Console.Read();\n128         }\n129 \n130         #region \u5c06\u6570\u636e\u52a0\u5165\u6307\u5b9a\u7f16\u53f7\u961f\u5217\n131         \/\/\/ &lt;summary&gt;\n132         \/\/\/ \u5c06\u6570\u636e\u52a0\u5165\u6307\u5b9a\u7f16\u53f7\u961f\u5217\n133         \/\/\/ &lt;\/summary&gt;\n134         \/\/\/ &lt;param name=\"i\"&gt;\u961f\u5217\u7f16\u53f7&lt;\/param&gt;\n135         \/\/\/ &lt;param name=\"skip\"&gt;\u6587\u4ef6\u4e2d\u8df3\u8fc7\u7684\u6761\u6570&lt;\/param&gt;\n136         \/\/\/ &lt;param name=\"list\"&gt;&lt;\/param&gt;\n137         \/\/\/ &lt;param name=\"top\"&gt;\u9700\u8981\u6bcf\u6b21\u8bfb\u53d6\u7684\u6761\u6570&lt;\/param&gt;\n138         public static void AddQueue(int i, List&lt;PriorityQueue&lt;int?&gt;&gt; list, ref int[] skip, int top = 100)\n139         {\n140             var result = File.ReadAllLines((Environment.CurrentDirectory + \"\/\/\" + (i + 1) + \".txt\"))\n141                              .Skip(skip[i]).Take(top).Select(j =&gt; Convert.ToInt32(j));\n142 \n143             \/\/\u52a0\u5165\u5230\u96c6\u5408\u4e2d\n144             foreach (var item in result)\n145                 list[i].Eequeue(null, item);\n146 \n147             \/\/\u5c06\u4e2a\u6570\u7d2f\u8ba1\u5230skip\u4e2d\uff0c\u8868\u793a\u4e0b\u6b21\u8981\u8df3\u8fc7\u7684\u8bb0\u5f55\u6570\n148             skip[i] += result.Count();\n149         }\n150         #endregion\n151 \n152         #region \u968f\u673a\u751f\u6210\u6570\u636e\n153         \/\/\/ &lt;summary&gt;\n154         \/\/\/ \u968f\u673a\u751f\u6210\u6570\u636e\n155         \/\/\/&lt;param name=\"max\"&gt;\u6267\u884c\u751f\u6210\u7684\u6570\u636e\u4e0a\u7ebf&lt;\/param&gt;\n156         \/\/\/ &lt;\/summary&gt;\n157         public static void CreateData(int max)\n158         {\n159             var sw = new StreamWriter(Environment.CurrentDirectory + \"\/\/demo.txt\");\n160 \n161             for (int i = 0; i &lt; max; i++)\n162             {\n163                 Thread.Sleep(2);\n164                 var rand = new Random((int)DateTime.Now.Ticks).Next(0, int.MaxValue &gt;&gt; 3);\n165 \n166                 sw.WriteLine(rand);\n167             }\n168             sw.Close();\n169         }\n170         #endregion\n171 \n172         #region \u5c06\u6570\u636e\u8fdb\u884c\u5206\u4efd\n173         \/\/\/ &lt;summary&gt;\n174         \/\/\/ \u5c06\u6570\u636e\u8fdb\u884c\u5206\u4efd\n175         \/\/\/ &lt;param name=\"size\"&gt;\u6bcf\u9875\u8981\u663e\u793a\u7684\u6761\u6570&lt;\/param&gt;\n176         \/\/\/ &lt;\/summary&gt;\n177         public static int Split(int size)\n178         {\n179             \/\/\u6587\u4ef6\u603b\u8bb0\u5f55\u6570\n180             int totalCount = 0;\n181 \n182             \/\/\u6bcf\u4e00\u4efd\u6587\u4ef6\u5b58\u653e size \u6761 \u8bb0\u5f55\n183             List&lt;int&gt; small = new List&lt;int&gt;();\n184 \n185             var sr = new StreamReader((Environment.CurrentDirectory + \"\/\/demo.txt\"));\n186 \n187             var pageSize = size;\n188 \n189             int pageCount = 0;\n190 \n191             int pageIndex = 0;\n192 \n193             while (true)\n194             {\n195                 var line = sr.ReadLine();\n196 \n197                 if (!string.IsNullOrEmpty(line))\n198                 {\n199                     totalCount++;\n200 \n201                     \/\/\u52a0\u5165\u5c0f\u96c6\u5408\u4e2d\n202                     small.Add(Convert.ToInt32(line));\n203 \n204                     \/\/\u8bf4\u660e\u5df2\u7ecf\u5230\u8fbe\u6307\u5b9a\u7684 size \u6761\u6570\u4e86\n205                     if (totalCount % pageSize == 0)\n206                     {\n207                         pageIndex = totalCount \/ pageSize;\n208 \n209                         small = small.OrderBy(i =&gt; i).Select(i =&gt; i).ToList();\n210 \n211                         File.WriteAllLines(Environment.CurrentDirectory + \"\/\/\" + pageIndex + \".txt\", small.Select(i =&gt; i.ToString()));\n212 \n213                         small.Clear();\n214                     }\n215                 }\n216                 else\n217                 {\n218                     \/\/\u8bf4\u660e\u5df2\u7ecf\u8bfb\u5b8c\u4e86\uff0c\u5c06\u5269\u4f59\u7684small\u8bb0\u5f55\u5199\u5165\u5230\u6587\u4ef6\u4e2d\n219                     pageCount = (int)Math.Ceiling((double)totalCount \/ pageSize);\n220 \n221                     small = small.OrderBy(i =&gt; i).Select(i =&gt; i).ToList();\n222 \n223                     File.WriteAllLines(Environment.CurrentDirectory + \"\/\/\" + pageCount + \".txt\", small.Select(i =&gt; i.ToString()));\n224 \n225                     break;\n226                 }\n227             }\n228 \n229             return pageCount;\n230         }\n231         #endregion\n232     }\n233 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><\/span><\/div>\n<\/div>\n<\/div>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>\u4f18\u5148\u961f\u5217\uff1a<\/p>\n\n\n\n<div class=\"cnblogs_code\">\n<div id=\"cnblogs_code_open_d8e68e3b-0e71-41af-ae0a-1b9ec94c048b\" class=\"cnblogs_code_hide\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><\/span><\/div>\n<pre>  1 using System;\n  2 using System.Collections.Generic;\n  3 using System.Linq;\n  4 using System.Text;\n  5 using System.Diagnostics;\n  6 using System.Threading;\n  7 using System.IO;\n  8 \n  9 namespace ConsoleApplication2\n 10 {\n 11     public class PriorityQueue&lt;T&gt;\n 12     {\n 13         \/\/\/ &lt;summary&gt;\n 14         \/\/\/ \u5b9a\u4e49\u4e00\u4e2a\u6570\u7ec4\u6765\u5b58\u653e\u8282\u70b9\n 15         \/\/\/ &lt;\/summary&gt;\n 16         private List&lt;HeapNode&gt; nodeList = new List&lt;HeapNode&gt;();\n 17 \n 18         #region \u5806\u8282\u70b9\u5b9a\u4e49\n 19         \/\/\/ &lt;summary&gt;\n 20         \/\/\/ \u5806\u8282\u70b9\u5b9a\u4e49\n 21         \/\/\/ &lt;\/summary&gt;\n 22         public class HeapNode\n 23         {\n 24             \/\/\/ &lt;summary&gt;\n 25             \/\/\/ \u5b9e\u4f53\u6570\u636e\n 26             \/\/\/ &lt;\/summary&gt;\n 27             public T t { get; set; }\n 28 \n 29             \/\/\/ &lt;summary&gt;\n 30             \/\/\/ \u4f18\u5148\u7ea7\u522b 1-10\u4e2a\u7ea7\u522b (\u4f18\u5148\u7ea7\u522b\u9012\u589e)\n 31             \/\/\/ &lt;\/summary&gt;\n 32             public int level { get; set; }\n 33 \n 34             public HeapNode(T t, int level)\n 35             {\n 36                 this.t = t;\n 37                 this.level = level;\n 38             }\n 39 \n 40             public HeapNode() { }\n 41         }\n 42         #endregion\n 43 \n 44         #region  \u6dfb\u52a0\u64cd\u4f5c\n 45         \/\/\/ &lt;summary&gt;\n 46         \/\/\/ \u6dfb\u52a0\u64cd\u4f5c\n 47         \/\/\/ &lt;\/summary&gt;\n 48         public void Eequeue(T t, int level = 1)\n 49         {\n 50             \/\/\u5c06\u5f53\u524d\u8282\u70b9\u8ffd\u52a0\u5230\u5806\u5c3e\n 51             nodeList.Add(new HeapNode(t, level));\n 52 \n 53             \/\/\u5982\u679c\u53ea\u6709\u4e00\u4e2a\u8282\u70b9\uff0c\u5219\u4e0d\u9700\u8981\u8fdb\u884c\u7b5b\u64cd\u4f5c\n 54             if (nodeList.Count == 1)\n 55                 return;\n 56 \n 57             \/\/\u83b7\u53d6\u6700\u540e\u4e00\u4e2a\u975e\u53f6\u5b50\u8282\u70b9\n 58             int parent = nodeList.Count \/ 2 - 1;\n 59 \n 60             \/\/\u5806\u8c03\u6574\n 61             UpHeapAdjust(nodeList, parent);\n 62         }\n 63         #endregion\n 64 \n 65         #region \u5bf9\u5806\u8fdb\u884c\u4e0a\u6ee4\u64cd\u4f5c\uff0c\u4f7f\u5f97\u6ee1\u8db3\u5806\u6027\u8d28\n 66         \/\/\/ &lt;summary&gt;\n 67         \/\/\/ \u5bf9\u5806\u8fdb\u884c\u4e0a\u6ee4\u64cd\u4f5c\uff0c\u4f7f\u5f97\u6ee1\u8db3\u5806\u6027\u8d28\n 68         \/\/\/ &lt;\/summary&gt;\n 69         \/\/\/ &lt;param name=\"nodeList\"&gt;&lt;\/param&gt;\n 70         \/\/\/ &lt;param name=\"index\"&gt;\u975e\u53f6\u5b50\u8282\u70b9\u7684\u4e4b\u540e\u6307\u9488\uff08\u8fd9\u91cc\u8981\u6ce8\u610f\uff1a\u6211\u4eec\n 71         \/\/\/ \u7684\u7b5b\u64cd\u4f5c\u65f6\u9488\u5bf9\u975e\u53f6\u8282\u70b9\u7684\uff09\n 72         \/\/\/ &lt;\/param&gt;\n 73         public void UpHeapAdjust(List&lt;HeapNode&gt; nodeList, int parent)\n 74         {\n 75             while (parent &gt;= 0)\n 76             {\n 77                 \/\/\u5f53\u524dindex\u8282\u70b9\u7684\u5de6\u5b69\u5b50\n 78                 var left = 2 * parent + 1;\n 79 \n 80                 \/\/\u5f53\u524dindex\u8282\u70b9\u7684\u53f3\u5b69\u5b50\n 81                 var right = left + 1;\n 82 \n 83                 \/\/parent\u5b50\u8282\u70b9\u4e2d\u6700\u5927\u7684\u5b69\u5b50\u8282\u70b9\uff0c\u65b9\u4fbf\u4e8eparent\u8fdb\u884c\u6bd4\u8f83\n 84                 \/\/\u9ed8\u8ba4\u4e3aleft\u8282\u70b9\n 85                 var min = left;\n 86 \n 87                 \/\/\u5224\u65ad\u5f53\u524d\u8282\u70b9\u662f\u5426\u6709\u53f3\u5b69\u5b50\n 88                 if (right &lt; nodeList.Count)\n 89                 {\n 90                     \/\/\u5224\u65adparent\u8981\u6bd4\u8f83\u7684\u6700\u5927\u5b50\u8282\u70b9\n 91                     min = nodeList[left].level &lt; nodeList[right].level ? left : right;\n 92                 }\n 93 \n 94                 \/\/\u5982\u679cparent\u8282\u70b9\u5927\u4e8e\u5b83\u7684\u67d0\u4e2a\u5b50\u8282\u70b9\u7684\u8bdd\uff0c\u6b64\u65f6\u7b5b\u64cd\u4f5c\n 95                 if (nodeList[parent].level &gt; nodeList[min].level)\n 96                 {\n 97                     \/\/\u5b50\u8282\u70b9\u548c\u7236\u8282\u70b9\u8fdb\u884c\u4ea4\u6362\u64cd\u4f5c\n 98                     var temp = nodeList[parent];\n 99                     nodeList[parent] = nodeList[min];\n100                     nodeList[min] = temp;\n101 \n102                     \/\/\u7ee7\u7eed\u8fdb\u884c\u66f4\u4e0a\u4e00\u5c42\u7684\u8fc7\u6ee4\n103                     parent = (int)Math.Ceiling(parent \/ 2d) - 1;\n104                 }\n105                 else\n106                 {\n107                     break;\n108                 }\n109             }\n110         }\n111         #endregion\n112 \n113         #region \u4f18\u5148\u961f\u5217\u7684\u51fa\u961f\u64cd\u4f5c\n114         \/\/\/ &lt;summary&gt;\n115         \/\/\/ \u4f18\u5148\u961f\u5217\u7684\u51fa\u961f\u64cd\u4f5c\n116         \/\/\/ &lt;\/summary&gt;\n117         \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\n118         public HeapNode Dequeue()\n119         {\n120             if (nodeList.Count == 0)\n121                 return null;\n122 \n123             \/\/\u51fa\u961f\u5217\u64cd\u4f5c\uff0c\u5f39\u51fa\u6570\u636e\u5934\u5143\u7d20\n124             var pop = nodeList[0];\n125 \n126             \/\/\u7528\u5c3e\u5143\u7d20\u586b\u5145\u5934\u5143\u7d20\n127             nodeList[0] = nodeList[nodeList.Count - 1];\n128 \n129             \/\/\u5220\u9664\u5c3e\u8282\u70b9\n130             nodeList.RemoveAt(nodeList.Count - 1);\n131 \n132             \/\/\u7136\u540e\u4ece\u6839\u8282\u70b9\u4e0b\u6ee4\u5806\n133             DownHeapAdjust(nodeList, 0);\n134 \n135             return pop;\n136         }\n137         #endregion\n138 \n139         #region  \u5bf9\u5806\u8fdb\u884c\u4e0b\u6ee4\u64cd\u4f5c\uff0c\u4f7f\u5f97\u6ee1\u8db3\u5806\u6027\u8d28\n140         \/\/\/ &lt;summary&gt;\n141         \/\/\/ \u5bf9\u5806\u8fdb\u884c\u4e0b\u6ee4\u64cd\u4f5c\uff0c\u4f7f\u5f97\u6ee1\u8db3\u5806\u6027\u8d28\n142         \/\/\/ &lt;\/summary&gt;\n143         \/\/\/ &lt;param name=\"nodeList\"&gt;&lt;\/param&gt;\n144         \/\/\/ &lt;param name=\"index\"&gt;\u975e\u53f6\u5b50\u8282\u70b9\u7684\u4e4b\u540e\u6307\u9488\uff08\u8fd9\u91cc\u8981\u6ce8\u610f\uff1a\u6211\u4eec\n145         \/\/\/ \u7684\u7b5b\u64cd\u4f5c\u65f6\u9488\u5bf9\u975e\u53f6\u8282\u70b9\u7684\uff09\n146         \/\/\/ &lt;\/param&gt;\n147         public void DownHeapAdjust(List&lt;HeapNode&gt; nodeList, int parent)\n148         {\n149             while (2 * parent + 1 &lt; nodeList.Count)\n150             {\n151                 \/\/\u5f53\u524dindex\u8282\u70b9\u7684\u5de6\u5b69\u5b50\n152                 var left = 2 * parent + 1;\n153 \n154                 \/\/\u5f53\u524dindex\u8282\u70b9\u7684\u53f3\u5b69\u5b50\n155                 var right = left + 1;\n156 \n157                 \/\/parent\u5b50\u8282\u70b9\u4e2d\u6700\u5927\u7684\u5b69\u5b50\u8282\u70b9\uff0c\u65b9\u4fbf\u4e8eparent\u8fdb\u884c\u6bd4\u8f83\n158                 \/\/\u9ed8\u8ba4\u4e3aleft\u8282\u70b9\n159                 var min = left;\n160 \n161                 \/\/\u5224\u65ad\u5f53\u524d\u8282\u70b9\u662f\u5426\u6709\u53f3\u5b69\u5b50\n162                 if (right &lt; nodeList.Count)\n163                 {\n164                     \/\/\u5224\u65adparent\u8981\u6bd4\u8f83\u7684\u6700\u5927\u5b50\u8282\u70b9\n165                     min = nodeList[left].level &lt; nodeList[right].level ? left : right;\n166                 }\n167 \n168                 \/\/\u5982\u679cparent\u8282\u70b9\u5c0f\u4e8e\u5b83\u7684\u67d0\u4e2a\u5b50\u8282\u70b9\u7684\u8bdd\uff0c\u6b64\u65f6\u7b5b\u64cd\u4f5c\n169                 if (nodeList[parent].level &gt; nodeList[min].level)\n170                 {\n171                     \/\/\u5b50\u8282\u70b9\u548c\u7236\u8282\u70b9\u8fdb\u884c\u4ea4\u6362\u64cd\u4f5c\n172                     var temp = nodeList[parent];\n173                     nodeList[parent] = nodeList[min];\n174                     nodeList[min] = temp;\n175 \n176                     \/\/\u7ee7\u7eed\u8fdb\u884c\u66f4\u4e0b\u4e00\u5c42\u7684\u8fc7\u6ee4\n177                     parent = min;\n178                 }\n179                 else\n180                 {\n181                     break;\n182                 }\n183             }\n184         }\n185         #endregion\n186 \n187         #region \u83b7\u53d6\u5143\u7d20\u5e76\u4e0b\u964d\u5230\u6307\u5b9a\u7684level\u7ea7\u522b\n188         \/\/\/ &lt;summary&gt;\n189         \/\/\/ \u83b7\u53d6\u5143\u7d20\u5e76\u4e0b\u964d\u5230\u6307\u5b9a\u7684level\u7ea7\u522b\n190         \/\/\/ &lt;\/summary&gt;\n191         \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\n192         public HeapNode GetAndDownPriority(int level)\n193         {\n194             if (nodeList.Count == 0)\n195                 return null;\n196 \n197             \/\/\u83b7\u53d6\u5934\u5143\u7d20\n198             var pop = nodeList[0];\n199 \n200             \/\/\u8bbe\u7f6e\u6307\u5b9a\u4f18\u5148\u7ea7\uff08\u5982\u679c\u4e3a MinValue \u5219\u4e3a -- \u64cd\u4f5c\uff09\n201             nodeList[0].level = level == int.MinValue ? --nodeList[0].level : level;\n202 \n203             \/\/\u4e0b\u6ee4\u5806\n204             DownHeapAdjust(nodeList, 0);\n205 \n206             return nodeList[0];\n207         }\n208         #endregion\n209 \n210         #region \u83b7\u53d6\u5143\u7d20\u5e76\u4e0b\u964d\u4f18\u5148\u7ea7\n211         \/\/\/ &lt;summary&gt;\n212         \/\/\/ \u83b7\u53d6\u5143\u7d20\u5e76\u4e0b\u964d\u4f18\u5148\u7ea7\n213         \/\/\/ &lt;\/summary&gt;\n214         \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\n215         public HeapNode GetAndDownPriority()\n216         {\n217             \/\/\u4e0b\u964d\u4e00\u4e2a\u4f18\u5148\u7ea7\n218             return GetAndDownPriority(int.MinValue);\n219         }\n220         #endregion\n221 \n222         #region \u8fd4\u56de\u5f53\u524d\u4f18\u5148\u961f\u5217\u4e2d\u7684\u5143\u7d20\u4e2a\u6570\n223         \/\/\/ &lt;summary&gt;\n224         \/\/\/ \u8fd4\u56de\u5f53\u524d\u4f18\u5148\u961f\u5217\u4e2d\u7684\u5143\u7d20\u4e2a\u6570\n225         \/\/\/ &lt;\/summary&gt;\n226         \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\n227         public int Count()\n228         {\n229             return nodeList.Count;\n230         }\n231         #endregion\n232     }\n233 }<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><\/span><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"cnblogs_code_toolbar\">\u8f6c\u8f7d\u5728\u7f51\u7edc\u535a\u5ba2\uff0c\u7248\u6743\u5f52\u4f5c\u8005\u6240\u6709,\u539f\u6587\u94fe\u63a5\uff1ahttps:\/\/www.cnblogs.com\/huangxincheng\/archive\/2012\/12\/19\/2824943.html<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8bf4\u5230\u6392\u5e8f\uff0c\u5927\u5bb6\u7b2c\u4e00\u53cd\u5e94\u57fa\u672c\u4e0a\u662f\u5185\u6392\u5e8f\uff0c\u662f\u7684\uff0c\u7b97\u6cd5\u561b\uff0c\u73a9\u7684\u5c31\u662f\u5185\u5b58\uff0c\u7136\u800c\u5185\u5b58\u662f\u6709\u9650\u5236\u7684\uff0c\u603b\u6709\u88c5\u4e0d\u4e0b\u7684\u90a3\u4e00\u5929\uff0c\u6b64\u65f6 &#8230; <a title=\"\u7ecf\u5178\u7b97\u6cd5\u9898\u6bcf\u65e5\u6f14\u7ec3\u2014\u2014\u7b2c\u5341\u516b\u9898 \u5916\u6392\u5e8f\" class=\"read-more\" href=\"https:\/\/cn.hostease.com\/xueyuan\/jishu\/%e7%bb%8f%e5%85%b8%e7%ae%97%e6%b3%95%e9%a2%98%e6%af%8f%e6%97%a5%e6%bc%94%e7%bb%83-%e7%ac%ac%e5%8d%81%e5%85%ab%e9%a2%98-%e5%a4%96%e6%8e%92%e5%ba%8f\/\" aria-label=\"\u9605\u8bfb \u7ecf\u5178\u7b97\u6cd5\u9898\u6bcf\u65e5\u6f14\u7ec3\u2014\u2014\u7b2c\u5341\u516b\u9898 \u5916\u6392\u5e8f\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[634,584],"class_list":["post-2106","post","type-post","status-publish","format-standard","hentry","category-jishu","tag-634","tag-584"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/2106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/comments?post=2106"}],"version-history":[{"count":3,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/2106\/revisions"}],"predecessor-version":[{"id":9347,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/2106\/revisions\/9347"}],"wp:attachment":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/media?parent=2106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/categories?post=2106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/tags?post=2106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}