เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เด•เตเดฑเดšเตเดšเต เดฆเดฟเดตเดธเด‚ เดฎเตเดฎเตเดชเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต เดนเตˆเดกเตเดฐ เดธเดฎเตเดฎเต‡เดณเดจเด‚. JUG.ru เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเต† เด†เตบเด•เตเดŸเตเดŸเดฟเด•เตพ เดกเตเดฐเต€เด‚ เดธเตเดชเต€เด•เตเด•เดฑเตเด•เดณเต† เด•เตเดทเดฃเดฟเดšเตเดšเต (เดฒเต†เดธเตเดฒเดฟ เดฒเดพเด‚เดชเต‹เตผเดŸเตเดŸเต! เด•เตเดฒเดฟเดซเต เด•เตเดฒเดฟเด•เตเด•เต! เดฎเดพเตผเดŸเตเดŸเดฟเตป เด•เตเดฒเต†เดชเตเดชเตเดฎเดพเตป!) เด•เต‚เดŸเดพเดคเต† เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเด‚ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดฎเดพเดฏเดฟ เดฐเดฃเตเดŸเต เดฆเดฟเดตเดธเด‚ เดจเต€เด•เตเด•เดฟเดตเดšเตเดšเต. เดธเดฎเตเดฎเต‡เดณเดจเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดจเตเดจเต เดชเด™เตเด•เดพเดณเดฟเด•เดณเดฟเตฝ เด’เดฐเดพเดณเดพเดฏเดฟเดฐเตเดจเตเดจเต เด•เต‹เดฃเตเดŸเต‚เตผ. เดžเด™เตเด™เตพ เดฌเต‚เดคเตเดคเดฟเตฝ เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต, เดžเด™เตเด™เดณเตเดŸเต† เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต, เดฌเดฟเด™เตเด•เต‹ เด•เดณเดฟเดšเตเดšเต, เดชเดธเดฟเดฒเตเด•เตพ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเต.

เด•เต‹เดฃเตเดŸเต‚เตผ เดธเตเดฑเตเดฑเดพเตปเดกเดฟเดฒเต† เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ เด…เดตเดฐเตเดŸเต† เดตเดพเดšเด•เดคเตเดคเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดชเต‹เดธเตเดฑเตเดฑเดพเดฃเดฟเดคเต. เด†เดฐเดพเดฃเต เดนเตˆเดกเตเดฐเดฏเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเดคเต - เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเดธเตเดคเดฟเดทเตเด•เดคเตเดคเต† เดตเดฒเดฟเดšเตเดšเตเดจเต€เดŸเตเดŸเดพเดจเตเดณเตเดณ เด…เดตเดธเดฐเด‚ เด†เดฐเดพเดฃเต, เด†เดฐเดฒเตเดฒเดพเดคเตเดค เดธเตเด–เด•เดฐเดฎเดพเดฏ เด…เดจเตเดญเดตเด‚ เด“เตผเด•เตเด•เดพเดจเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเดฃเด‚. เดตเดฒเดฟเดฏ เด“- เดจเต‹เดŸเตเดŸเต‡เดทเตป.

เดคเด™เตเด™เดณเตเดŸเต† เดคเต€เดฐเตเดฎเดพเดจเด‚ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดซเตเดฒเดฟเดชเตเดชเตโ€ŒเดšเดพเตผเดŸเตเดŸเต เดธเตเดฒเตˆเดกเตเด•เดณเดพเดฏเดฟ เดตเดฟเด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดš เดชเด™เตเด•เดพเดณเดฟเด•เตพ เดชเต‹เดฒเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดžเดพเตป เดคเดฎเดพเดถ เดชเดฑเดฏเตเดจเตเดจเดคเดฒเตเดฒ - เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เด…เดตเตผ เดˆ เด•เดŸเดฒเดพเดธเต เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด•เตˆเดฎเดพเดฑเดฟ:

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เด†เด•เต† เดฎเต‚เดจเตเดจเต เดœเต‹เดฒเดฟเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต:

  • เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดญเดพเดฐเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดชเด•เตผเดชเตเดชเตเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต
  • เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเต†เดคเดฟเดฐเต† เด…เดจเตเดตเต‡เดทเดฃ เดซเดฒเด™เตเด™เตพ เด…เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต
  • เดฑเดฟเด‚เด—เต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ เด‰เดณเตเดณ เด’เดฐเต เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเดกเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดธเด‚เดธเตเดฅเดพเดจ เด•เตˆเดฎเดพเดฑเตเดฑเด‚

เดŸเดพเดธเตเด•เต 1. เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด•เตเดฒเดฏเดจเตเดฑเต

เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† N เดตเต†เดฏเตเดฑเตเดฑเดกเต เดชเด•เตผเดชเตเดชเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

N เดจเต‹เดกเตเด•เดณเตเดŸเต† เดตเตปเดคเต‹เดคเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเดพเดฏเดฟ เด’เดฐเต เด•เตเดฒเดฏเดจเตเดฑเต เดฒเตˆเดฌเตเดฐเดฑเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเต€เดฎเดฟเดจเต† เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดจเต‹เดกเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดตเดฟเดตเดฟเดง เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑเด•เดณเตเดŸเต† เดŸเตเดฐเดพเด•เตเด•เต เดฒเตˆเดฌเตเดฐเดฑเดฟ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเด‚ (เด‰เดฆเดพ, เด…เดตเดฏเตเดŸเต† เดฒเต‡เดฑเตเดฑเตปเดธเดฟเด•เตพ, 4xx/5xx เดชเตเดฐเดคเดฟเด•เดฐเดฃ เดจเดฟเดฐเด•เตเด•เตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต) เด•เต‚เดŸเดพเดคเต† เด…เดตเดฏเตเด•เตเด•เต เดซเตเดฒเต‹เดŸเตเดŸเดฟเด‚เด—เต เดชเต‹เดฏเดฟเดจเตเดฑเต เดตเต†เดฏเตเดฑเตเดฑเตเด•เตพ W1..WN เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด•เตบเด•เดฑเดจเตเดฑเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟเดฏเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตเด•เต N เดจเต‹เดกเตเด•เดณเตเดŸเต† K เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฃเด‚ - เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเดจเตเดณเตเดณ เด…เดตเดธเดฐเด‚ เด’เดฐเต เดจเต‹เดกเดฟเดจเตเดฑเต† เดญเดพเดฐเดคเตเดคเดฟเดจเต เด†เดจเตเดชเดพเดคเดฟเด•เดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เดจเต‹เดกเตเด•เตพ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเด•. เดตเดฒเดฟเดฏ O เดจเตŠเดŸเตเดŸเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเดฟเดจเตเดฑเต† เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเต‡เดทเดฃเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด•.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดŽเดฒเตเดฒเดพเด‚ เด‡เด‚เด—เตเดฒเต€เดทเดฟเดฒเตเดณเตเดณเดคเต?

เดˆ เดฐเต‚เดชเดคเตเดคเดฟเตฝ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเดคเตเดคเดตเตผ เด…เดตเดฐเตเดฎเดพเดฏเดฟ เดฏเตเดฆเตเดงเด‚ เดšเต†เดฏเตเดคเต, เดนเตˆเดกเตเดฐเดฏเตเดŸเต† เด”เดฆเตเดฏเต‹เด—เดฟเด• เดญเดพเดท เด‡เด‚เด—เตเดฒเต€เดทเต เด†เดฏเดฟเดฐเตเดจเตเดจเต. เดšเตเดฎเดคเดฒเด•เตพ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดŸเต:

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เดชเต‡เดชเตเดชเดฑเตเด‚ เดชเต†เตปเดธเดฟเดฒเตเด‚ เดŽเดŸเตเด•เตเด•เตเด•, เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเด•, เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดธเตโ€Œเดชเต‹เดฏเดฟเดฒเดฑเตเด•เตพ เดคเตเดฑเด•เตเด•เดพเตป เดคเดฟเดฐเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฐเตเดคเต ๐Ÿ™‚

เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเด•เดฒเดจเด‚ (เดตเต€เดกเดฟเดฏเต‹)

5:53-เดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต, 4 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดฎเดพเดคเตเดฐเด‚:

เดซเตเดฒเดฟเดชเตเดชเตโ€ŒเดšเดพเตผเดŸเตเดŸเดฟเดฒเตเดณเตเดณ เด†เดณเตเด•เตพ เด…เดตเดฐเตเดŸเต† เดชเดฐเดฟเดนเดพเดฐเด‚ เดŽเด™เตเด™เดจเต† เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเตเดตเต†เดจเตเดจเดคเต เด‡เดคเดพ:


เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเด•เดฒเดจเด‚ (เดŸเต†เด•เตเดธเตเดฑเตเดฑเต)

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดฐเดฟเดนเดพเดฐเด‚ เด‰เดชเดฐเดฟเดคเดฒเดคเตเดคเดฟเดฒเดพเดฃเต: เดŽเดฒเตเดฒเดพ เดชเด•เตผเดชเตเดชเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดญเดพเดฐเด™เตเด™เตพ เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเด•, 0 เดฎเตเดคเตฝ เดŽเดฒเตเดฒเดพ เดญเดพเดฐเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด†เด•เต†เดคเตเดคเตเด•เดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด•เตเดฐเดฎเดฐเดนเดฟเดค เดธเด‚เด–เตเดฏ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต 0 เดฎเตเดคเตฝ (i-1) เดตเดฐเต†เดฏเตเดณเตเดณ เดชเด•เตผเดชเตเดชเตเด•เดณเตเดŸเต† เด†เด•เต†เดคเตเดคเตเด• เด’เดฐเต i-replica เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• เด’เดฐเต เด•เตเดฐเดฎเดฐเดนเดฟเดค เดธเด‚เด–เตเดฏเดฏเต‡เด•เตเด•เดพเตพ เด•เตเดฑเดตเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† 0 เดฎเตเดคเตฝ i-th เดตเดฐเต†เดฏเตเดณเตเดณ เดชเด•เตผเดชเตเดชเตเด•เดณเตเดŸเต† เด†เด•เต†เดคเตเดคเตเด• - เด…เดคเดฟเดฒเตเด‚ เด•เต‚เดŸเตเดคเดฒเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ เด’เดฐเต เดชเด•เตผเดชเตเดชเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดŸเตเดคเตเดคเดคเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเตป, เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดชเด•เตผเดชเตเดชเต เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดฎเตเดดเตเดตเตป เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเดตเตเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด’เดฐเต เดชเด•เตผเดชเตเดชเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค O(N), K เดชเด•เตผเดชเตเดชเตเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค O(N K) ~ O(N2) เด†เดฃเต.

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เด•เตเดตเดพเดกเตเดฐเดพเดฑเตเดฑเดฟเด•เต เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เดฎเต‹เดถเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เด…เดคเต เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด‚ เดธเต†เด—เตเดฎเต†เดจเตเดฑเต เดŸเตเดฐเต€ เดคเต‚เด•เตเด•เด™เตเด™เดณเตเดŸเต† เดคเตเด•เด•เตพเด•เตเด•เดพเดฏเดฟ. เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ lg N เดจเตเดฑเต† เด’เดฐเต เดตเตƒเด•เตเดทเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚, เด…เดคเดฟเดจเตเดฑเต† เด‡เดฒเด•เดณเดฟเตฝ เดคเดจเดฟเดชเตเดชเด•เตผเดชเตเดชเต เดคเต‚เด•เตเด•เด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด‚, เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดจเต‹เดกเตเด•เดณเดฟเตฝ - เดญเดพเด—เดฟเด• เดคเตเด•เด•เตพ, เดฎเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเต‡เดฐเดฟเดฒเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดญเดพเดฐเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด†เด•เต†เดคเตเดคเตเด•. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, 0 เดฎเตเดคเตฝ เดŽเดฒเตเดฒเดพ เดญเดพเดฐเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด†เด•เต†เดคเตเดคเตเด• เดตเดฐเต† เดžเด™เตเด™เตพ เด’เดฐเต เด•เตเดฐเดฎเดฐเดนเดฟเดค เดธเด‚เด–เตเดฏ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, i-th เดชเด•เตผเดชเตเดชเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ, เด…เดคเต เดฎเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•, เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดชเด•เตผเดชเตเดชเตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•. เดˆ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด’เดฐเต เดฎเดฐเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค O(N), i-th เดชเด•เตผเดชเตเดชเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ เดฎเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค O(lg N), K เดชเด•เตผเดชเตเดชเตเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค O(N + K เด†เดฃเต. lg N) ~ O(N lg N) .

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เดฒเต€เดจเดฟเดฏเตผ-เดฒเต‹เด—เต เด•เต‹เด‚เดชเตเดฒเด•เตโ€Œเดธเดฟเดฑเตเดฑเดฟ เด•เตเดตเดพเดกเตเดฐเดพเดฑเตเดฑเดฟเด•เต เด•เต‹เด‚เดชเตเดฒเด•เตโ€Œเดธเดฟเดฑเตเดฑเดฟเดฏเต‡เด•เตเด•เดพเตพ เดฎเดจเต‹เดนเดฐเดฎเดพเดฃเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดตเดฒเดฟเดฏ เด•เต†.

เด‡เดคเดพเดฃเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด•เต‹เดกเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด•เตเดฒเดฏเดจเตเดฑเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ "เด•เดฟเดดเด•เตเด•เต". (เด…เดตเดฟเดŸเต†, เดฎเดฐเด‚ O(N lg N) เตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด…เตฝเด—เต‹เดฐเดฟเดคเดคเตเดคเดฟเดจเตเดฑเต† เด…เดจเตเดคเดฟเดฎ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดคเดฏเต† เดฌเดพเดงเดฟเด•เตเด•เดฟเดฒเตเดฒ.)

เดŸเดพเดธเตเด•เต 2. เดธเต€เดฌเตเดฐ

เด…เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดจเต‹เตบ-เด‡เตปเดกเด•เตโ€Œเดธเต เดšเต†เดฏเตเดฏเดพเดคเตเดค เดซเต€เตฝเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดชเตเดฐเดฎเดพเดฃเด™เตเด™เตพ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เด…เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

เด’เดฐเต เดทเต†เตผเดกเต เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเต€เดฎเดฟเดจเต† เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดฒเดฟเดชเตเดชเด‚ M (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ N <100 << M) เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เด…เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ (เดธเต‚เดšเดฟเด•เดฎเดฒเตเดฒเดพเดคเตเดค) เดธเด‚เด–เตเดฏเดพ เดซเต€เตฝเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดŸเตเด•เตเด•เดฟเดฏ เดฎเตเตปเดจเดฟเดฐ N เดชเตเดฐเดฎเดพเดฃเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดชเตŠเดคเตเดตเดพเดฏ เดœเต‹เดฒเดฟเดญเดพเดฐเด‚. เดŸเต‹เดชเตเดชเต เดŽเดธเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ (S ~ N) เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚ เดŸเต‹เดชเตเดชเต N เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดธเดพเดงเดพเดฐเดฃ เดœเต‹เดฒเดฟเดญเดพเดฐเด‚ เด…เตฝเดชเตเดชเด‚ เด•เตเดฑเดตเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เด…เดคเตเดคเดฐเด‚ เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด’เดฐเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเด•. เดถเดฐเดพเดถเดฐเดฟ เด•เต‡เดธเดฟเดฒเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดฎเต‹เดถเด‚ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด‚ เดตเดฒเดฟเดฏ O เดจเตŠเดŸเตเดŸเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเดฟเดจเตเดฑเต† เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเต‡เดทเดฃเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด•.

เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเด•เดฒเดจเด‚ (เดตเต€เดกเดฟเดฏเต‹)

34:50-เดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต, 6 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดฎเดพเดคเตเดฐเด‚:


เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเด•เดฒเดจเด‚ (เดŸเต†เด•เตเดธเตเดฑเตเดฑเต)

เด‰เดชเดฐเดฟเดคเดฒ เดชเดฐเดฟเดนเดพเดฐเด‚: เดŽเดฒเตเดฒเดพ เดฐเต‡เด–เด•เดณเตเด‚ เด…เดŸเตเด•เตเด•เตเด• (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด•เตเดตเดฟเด•เตเดธเต‹เตผเดŸเตเดŸเต), เดคเตเดŸเตผเดจเตเดจเต N+S เดชเตเดฐเดฎเดพเดฃเด™เตเด™เตพ เดŽเดŸเตเด•เตเด•เตเด•. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดคเดฐเด‚เดคเดฟเดฐเดฟเด•เตเด•เดฒเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เดถเดฐเดพเดถเดฐเดฟ O(M lg M), เดเดฑเตเดฑเดตเตเด‚ เดฎเต‹เดถเด‚ O(M2) เด†เดฃเต.

เดŽเดฒเตเดฒเดพ เดŽเด‚ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเตเด‚ เด…เดŸเตเด•เตเด•เดฟ เด…เดตเดฏเดฟเตฝ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดญเดพเด—เด‚ เดฎเดพเดคเตเดฐเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเดคเต เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดฒเตเดฒเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต. เดŽเดฒเตเดฒเดพ เดฐเต‡เด–เด•เดณเตเด‚ เด…เดŸเตเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป, เด’เดฐเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•, เด…เดคเต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเตเดŸเต† N + S เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด‚ (เด…เดต เดเดคเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดตเดดเดฟเดฏเตเด‚ เด…เดŸเตเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต). เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เดถเดฐเดพเดถเดฐเดฟ O(M) เด†เดฏเดฟ เด•เตเดฑเดฏเตเด‚, เด…เดคเต‡เดธเดฎเดฏเด‚ เดเดฑเตเดฑเดตเตเด‚ เดฎเต‹เดถเด‚ เด…เดตเดธเตเดฅ เด…เดคเต‡เดชเดŸเดฟ เดคเตเดŸเดฐเตเด‚.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ - เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดฌเตˆเดจเดฑเดฟ เดนเต€เดชเตเดชเต เดธเตเดŸเตเดฐเต€เดฎเดฟเด‚เด—เต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด†เดฆเตเดฏเดคเตเดคเต† N+S เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เดฎเดฟเดจเดฟเดฎเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดพเด•เตเดธเต เดนเต€เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต (เด…เดŸเตเด•เตเด•เตเดจเตเดจ เดฆเดฟเดถเดฏเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต), เดคเตเดŸเตผเดจเตเดจเต เด“เดฐเต‹ เด…เดŸเตเดคเตเดค เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดžเดคเต‹ เด•เต‚เดŸเดฟเดฏเดคเต‹ เด†เดฏ เดชเตเดฐเดฎเดพเดฃเด‚ เด…เดŸเด™เตเด™เตเดจเตเดจ เดฎเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เดฎเดฐเดคเตเดคเดฟเตฝ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. . เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฑเตเดฑเดตเตเด‚ เดฎเต‹เดถเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดจเดฟเดฐเดจเตเดคเดฐเด‚ เดฎเดฐเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเดฎเตเดชเต‹เตพ, O (M lg M) เด†เดฃเต, เดฆเตเดฐเตเดคเด—เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตฝ เดชเต‹เดฒเต†, เดถเดฐเดพเดถเดฐเดฟ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค O (M) เด†เดฃเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดนเต€เดชเตเดชเต เดธเตเดŸเตเดฐเต€เดฎเดฟเด‚เด—เต เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เดญเต‚เดฐเดฟเดญเดพเด—เด‚ เดฐเต‡เด–เด•เดณเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเต เดŽเดฒเดฎเต†เดจเตเดฑเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เด•เต‚เดฎเตเดชเดพเดฐเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด•เต‹เดฃเตเดŸเต‚เดฐเดฟเตฝ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเดคเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏ เดธเต€เดฌเตเดฐ เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเดพเดฃเต เด‡เดคเตเดคเดฐเด‚ เดธเต‹เตผเดŸเตเดŸเดฟเด‚เด—เต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต.

เดŸเดพเดธเตเด•เต 3. เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต เดธเตเดตเดพเดชเตเดชเตเด•เตพ

เดธเด‚เดธเตเดฅเดพเดจเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต เดเดฑเตเดฑเดตเตเด‚ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

N เดจเต‹เดกเตเด•เดณเตเดŸเต† เด’เดฐเต เดตเดฟเดคเดฐเดฃ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดซเดพเตปเดธเดฟ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเต€เดฎเดฟเดจเต† เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. i-th เดจเต‹เดกเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ (i+1)-th เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เตเด‚ N-th เดจเต‹เดกเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เด†เดฆเตเดฏ เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เตเด‚ เดฎเดพเดฑเตเดฑเดฃเด‚. เดฐเดฃเตเดŸเต เดจเต‹เดกเตเด•เตพ เด…เดตเดฏเตเดŸเต† เด…เดตเดธเตเดฅเด•เดณเต† เด†เดฑเตเดฑเต‹เดฎเดฟเด•เดฎเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดธเด‚เดธเตเดฅเดพเดจ เดธเตเดตเดพเดชเตเดชเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เด’เดฐเต‡เดฏเตŠเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚. เด’เดฐเต เดธเด‚เดธเตเดฅเดพเดจ เดธเตเดตเดพเดชเตเดชเต M เดฎเดฟเดฒเตเดฒเดฟเดธเต†เด•เตเด•เตปเดกเต เดŽเดŸเตเด•เตเด•เตเดฎเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดพเด‚. เด“เดฐเต‹ เดจเต‹เดกเดฟเดจเตเด‚ เดเดคเต เดจเดฟเดฎเดฟเดทเดตเตเด‚ เด’เดฐเตŠเดฑเตเดฑ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต เดธเตเดตเดพเดชเตเดชเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดจเต‹เดกเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดธเตเดฅเด•เตพ เด•เตˆเดฎเดพเดฑเดพเตป เดŽเดคเตเดฐ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเด‚?

เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเด•เดฒเดจเด‚ (เดŸเต†เด•เตเดธเตเดฑเตเดฑเต)

เด‰เดชเดฐเดฟเดคเดฒ เดชเดฐเดฟเดนเดพเดฐเด‚: เด’เดจเตเดจเดพเดฎเดคเตเดคเต†เดฏเตเด‚ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต†เดฏเตเด‚ เดฎเต‚เดฒเด•เดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅเด•เตพ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเตเด•, เดคเตเดŸเตผเดจเตเดจเต เด’เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเตเด‚ เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเตเด‚, เดชเดฟเดจเตเดจเต† เด’เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเตเด‚ เดจเดพเดฒเดพเดฎเดคเตเดคเต‡เดคเตเด‚, เด…เด™เตเด™เดจเต†. เด“เดฐเต‹ เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเด‚ เดถเต‡เดทเด‚, เด’เดฐเต เดฎเต‚เดฒเด•เดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเตเดฅเดพเดจเดคเตเดคเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดจเดฟเด™เตเด™เตพ O(N) เด•เตเดฐเดฎเดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเด•เดฏเตเด‚ O(N M) เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚.

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เดฒเต€เดจเดฟเดฏเตผ เดธเดฎเดฏเด‚ เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏเดคเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเต‚เดฒเด•เด™เตเด™เดณเตเดŸเต† เด…เดตเดธเตเดฅเด•เตพ เดœเต‹เดกเดฟเด•เดณเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚: เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต, เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเต เดจเดพเดฒเดพเดฎเดคเตเดคเต‡เดคเต, เด…เด™เตเด™เดจเต†. เด“เดฐเต‹ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเดฟเดจเตเด‚ เดถเต‡เดทเด‚, เด“เดฐเต‹ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด˜เดŸเด•เดตเตเด‚ เดถเดฐเดฟเดฏเดพเดฏ เดธเตเดฅเดพเดจเดคเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดจเดฟเด™เตเด™เตพ O(lg N) เด•เตเดฐเดฎเดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเด•เดฏเตเด‚ O(M lg N) เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚.

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดทเดฟเดซเตเดฑเตเดฑเต เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ - เดฐเต‡เด–เต€เดฏเดฎเดฒเตเดฒ, เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดธเดฎเดฏเดคเตเดคเดพเดฃเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เด†เดฆเตเดฏ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏ เดฎเต‚เดฒเด•เดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเตเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเต เดฎเตเดคเดฒเดพเดฏเดต. เด…เดตเดธเดพเดจ เดฎเต‚เดฒเด•เดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เดถเดฐเดฟเดฏเดพเดฏ เดธเตเดฅเดพเดจเดคเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเดฎเตพ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฎเต‚เดฒเด•เดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเตเด‚ เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเต เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเตเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดˆ เดฑเต—เดฃเตเดŸเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด•เตพเด•เตเด•เต เดถเต‡เดทเด‚, เดŽเดฒเตเดฒเดพ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดธเตเดฅเด•เตพ เดถเดฐเดฟเดฏเดพเดฏ เดธเตเดฅเดพเดจเดคเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ O(2M) ~ O(1) เด•เตเดฐเดฎเดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด‚.

เดนเตˆเดกเตเดฐ เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚ - เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด‚เด—เต, เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต

เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด’เดฐเต เด—เดฃเดฟเดคเดถเดพเดธเตเดคเตเดฐเดœเตเดžเดจเต† เด…เดคเตเดญเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฒเตเดฒ, เด’เดฐเต เดญเตเดฐเดฎเดฃเด‚ เดฐเดฃเตเดŸเต เด…เด•เตเดทเต€เดฏ เดธเดฎเดฎเดฟเดคเดฟเด•เดณเตเดŸเต† เด˜เดŸเดจเดฏเดพเดฃเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เดดเตเด‚ เด“เตผเด•เตเด•เตเดจเตเดจเต. เดตเดดเดฟเดฏเดฟเตฝ, เด’เดฐเต เดทเดฟเดซเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เด‡เดคเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฏเดฟ เดธเดพเดฎเดพเดจเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเดฑเดฟเดšเตเดšเต K <N เดธเตเดฅเดพเดจเด™เตเด™เตพ เด•เตŠเดฃเตเดŸเดพเดฃเต. (เดŽเด™เตเด™เดจเต† เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดŽเดจเตเดจเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดดเตเดคเตเด•.)

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเดธเดฟเดฒเตเด•เตพ เด‡เดทเตเดŸเดชเตเดชเต†เดŸเตเดŸเต‹? เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดฑเตเดฑเต เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด…เดฑเดฟเดฏเดพเดฎเต‹? เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดชเด™เตเด•เดฟเดŸเตเด•.

เด…เดตเดธเดพเดจเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดšเดฟเดฒ เดฒเดฟเด™เตเด•เตเด•เตพ เด‡เดคเดพ:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•