เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจนเฉ‡ เจนเจฌเจฐ! เจฎเฉˆเจ‚ เจฒเฉ‡เจ– เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจคเฉเจนเจพเจกเฉ‡ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚
"เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ".

เจœเจฆเฉ‹เจ‚ เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจ—เฉฑเจฒ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ เจฎเฉˆเจ‚ เจฎเจฆเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจชเจฐ เจธเฉ‹เจšเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ•เฉเจ เจ—เฉเฉฐเจฎ เจนเฉˆเฅค เจ‰เจน เจนเจฐ เจœเจ—เฉเจนเจพ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ. เจ›เฉ‹เจŸเฉ‡ เจ…เจคเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เฉ€ SQLite เจคเฉ‹เจ‚ เจฒเฉˆ เจ•เฉ‡ เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจŸเฉˆเจฐเจพเจกเฉ‡เจŸเจพ เจคเฉฑเจ• เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ‰เจชเจฒเจฌเจง เจนเจจเฅค เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ เจนเฉ€ เจฒเฉ‡เจ– เจนเจจ เจœเฉ‹ เจฆเฉฑเจธเจฆเฉ‡ เจนเจจ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฒเจˆ "howdoesarelationaldatabasework" เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจ–เฉ‹เจœ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจจเจคเฉ€เจœเฉ‡ เจ•เจฟเฉฐเจจเฉ‡ เจ˜เฉฑเจŸ เจนเจจเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจฒเฉ‡เจ– เจ›เฉ‹เจŸเฉ‡ เจนเจจเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจจเจตเฉ€เจจเจคเจฎ เจฌเจœเจผเฉ€ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€เจ†เจ‚ (เจฌเจฟเจ—เจกเจพเจŸเจพ, NoSQL เจœเจพเจ‚ JavaScript) เจฆเฉ€ เจญเจพเจฒ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฆเฉฑเจธเจฃ เจตเจพเจฒเฉ‡ เจนเฉ‹เจฐ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจตเจพเจฒเฉ‡ เจฒเฉ‡เจ– เจฎเจฟเจฒเจฃเจ—เฉ‡ เจ•เจฟ เจ‰เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจ•เฉ€ เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฌเจนเฉเจค เจชเฉเจฐเจพเจฃเฉ‡ เจ…เจคเฉ‡ เจฌเจนเฉเจค เจฌเฉ‹เจฐเจฟเฉฐเจ— เจนเจจ เจœเฉ‹ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฟเจŸเฉ€ เจฆเฉ‡ เจ•เฉ‹เจฐเจธเจพเจ‚, เจ–เฉ‹เจœ เจชเฉฑเจคเจฐเจพเจ‚ เจ…เจคเฉ‡ เจ•เจฟเจคเจพเจฌเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจธเจฎเจเจพเจ‰เจฃ เจฒเจˆ เจนเจจ?

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ‡เฉฑเจ• เจกเจฟเจตเฉˆเจฒเจชเจฐ เจตเจœเฉ‹เจ‚, เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเฉ€ เจ•เฉ‹เจˆ เจšเฉ€เจœเจผ เจตเจฐเจคเจฃ เจคเฉ‹เจ‚ เจจเจซเจผเจฐเจค เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเจพเฅค เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ 40 เจธเจพเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจตเจฐเจคเฉ‡ เจ—เจ เจนเจจ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจ•เจพเจฐเจจ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ. เจธเจพเจฒเจพเจ‚ เจฆเฉŒเจฐเจพเจจ, เจฎเฉˆเจ‚ เจ‡เจนเจจเจพเจ‚ เจ…เจœเฉ€เจฌ เจฌเจฒเฉˆเจ• เจฌเจพเจ•เจธเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฑเจšเจฎเฉเฉฑเจš เจธเจฎเจเจฃ เจฒเจˆ เจธเฉˆเจ‚เจ•เฉœเฉ‡ เจ˜เฉฐเจŸเฉ‡ เจฌเจฟเจคเจพเจ เจนเจจ เจœเฉ‹ เจฎเฉˆเจ‚ เจนเจฐ เจฐเฉ‹เจœเจผ เจตเจฐเจคเจฆเจพ เจนเจพเจ‚เฅค เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฌเจนเฉเจค เจฆเจฟเจฒเจšเจธเจช เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจ…เจคเฉ‡ เจฎเฉเฉœ เจตเจฐเจคเฉ‹เจ‚ เจฏเฉ‹เจ— เจธเฉฐเจ•เจฒเจชเจพเจ‚ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค. เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจ‡เจธ เจตเจฟเจ†เจชเจ• เจตเจฟเจธเจผเฉ‡ เจตเจฟเฉฑเจš เจœเจพเจฃ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เจฆเฉ‡ เจธเจฎเจพเจ‚ เจœเจพเจ‚ เจเฉเจ•เจพเจ… เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจ†เจจเฉฐเจฆ เจฒเฉˆเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจธเจฟเจฐเจฒเฉ‡เจ– เจธเจชเจธเจผเจŸ เจนเฉˆ, เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจ‰เจฆเฉ‡เจธเจผ เจ‡เจน เจธเจฎเจเจฃเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ. เจ‡เจธ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจชเจคเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฌเฉ‡เจจเจคเฉ€ เจ…เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจธเจตเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจฟเจ–เจฃเฉ‡ เจนเจจ เจฐเจพเจ…; เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจธเจฎเจ เจจเจนเฉ€เจ‚ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซ เจ‡เจนเฉ€ เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ, เจฎเฉˆเจ‚ เจฌเจพเจ•เฉ€ เจฆเฉ€ เจตเจฟเจ†เจ–เจฟเจ† เจ•เจฐเจพเจ‚เจ—เจพ.

เจฎเฉˆเจ‚ เจ•เฉเจ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจตเจฟเจ—เจฟเจ†เจจ เจฆเฉ€เจ†เจ‚ เจฎเฉ‚เจฒ เจ—เฉฑเจฒเจพเจ‚ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจพเจ‚เจ—เจพ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจธเจฎเจพเจ‚ เจ—เฉเฉฐเจเจฒเจคเจพ (BigO)เฅค เจฎเฉˆเจ‚ เจœเจพเจฃเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจ‡เจธ เจธเฉฐเจ•เจฒเจช เจจเฉ‚เฉฐ เจจเจซเจผเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจ‡เจธเจฆเฉ‡ เจฌเจฟเจจเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจฆเฉ€เจ†เจ‚ เจชเฉ‡เจšเฉ€เจฆเจ—เฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‹เจ—เฉ‡เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจตเจฟเจธเจผเจพ เจนเฉˆ, เจฎเฉˆเจ‚ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจค เจ•เจฐเจพเจ‚เจ—เจพ เจœเฉ‹ เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฆเจพ เจนเจพเจ‚ เจ‰เจน เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ: เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฟเจตเฉ‡เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ SQL เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ›. เจฎเฉˆเจ‚ เจนเฉเจฃเฉ‡ เจœเจพเจฃ-เจชเจ›เจพเจฃ เจ•เจฐเจพเจ‚เจ—เจพ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจธเฉฐเจ•เจฒเจชเจคเจพเจ‚ เจœเฉ‹ เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเจšเจพเจฐ เจนเฉ‹เจตเฉ‡ เจ•เจฟ เจนเฉเฉฑเจก เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจ•เฉ€ เจนเฉ‹ เจฐเจฟเจนเจพ เจนเฉˆ.

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจฒเฉฐเจฎเจพ เจ…เจคเฉ‡ เจคเจ•เจจเฉ€เจ•เฉ€ เจฒเฉ‡เจ– เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ เจขเจพเจ‚เจšเฉ‡ เจธเจผเจพเจฎเจฒ เจนเจจ, เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจฒเจˆ เจ†เจชเจฃเจพ เจธเจฎเจพเจ‚ เจฒเจ“เฅค เจ•เฉเจ เจงเจพเจฐเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ เจฎเฉเจธเจผเจ•เจฒ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ; เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจซเจฟเจฐ เจตเฉ€ เจ†เจฎ เจตเจฟเจšเจพเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐ เจฒเจˆ, เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ 3 เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆ:

  • เจนเฉ‡เจ เจฒเฉ‡-เจชเฉฑเจงเจฐ เจ…เจคเฉ‡ เจ‰เฉฑเจš-เจชเฉฑเจงเจฐเฉ€ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจญเจพเจ—เจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
  • เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
  • เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจ…เจคเฉ‡ เจฌเจซเจฐ เจชเฉ‚เจฒ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจฎเฉ‚เจฒ เจ—เฉฑเจฒเจพเจ‚ 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจ“

เจ•เจˆ เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ‚ (เจ‡เฉฑเจ• เจ—เจฒเฉˆเจ•เจธเฉ€ เจตเจฟเฉฑเจš, เจฌเจนเฉเจค เจฆเฉ‚เจฐ...), เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเฉ‚เฉฐ เจฌเจฟเจฒเจ•เฉเจฒ เจชเจคเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€ เจœเฉ‹ เจ‰เจน เจ•เฉ‹เจกเจฟเฉฐเจ— เจ•เจฐ เจฐเจนเฉ‡ เจธเจจเฅค เจ‰เจน เจ†เจชเจฃเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจฆเจฟเจฒเฉ‹เจ‚ เจœเจพเจฃเจฆเฉ‡ เจธเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ†เจชเจฃเฉ‡ เจนเฉŒเจฒเฉ€ เจ•เฉฐเจชเจฟเจŠเจŸเจฐเจพเจ‚ เจฆเฉ€ CPU เจ…เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจฌเจฐเจฌเจพเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจธเจจเฅค

เจ‡เจธ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจธเฉฐเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจฏเจพเจฆ เจฆเจฟเจตเจพเจตเจพเจ‚เจ—เจพ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฒเจˆ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเจจเฅค เจฎเฉˆเจ‚ เจธเฉฐเจ•เจฒเจช เจตเฉ€ เจชเฉ‡เจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจธเฉ‚เจšเจ•เจพเจ‚เจ•.

O(1) เจฌเจจเจพเจฎ O(n2)

เจ…เฉฑเจœเจ•เฉฑเจฒเฉเจน, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจฆเฉ€ เจชเจฐเจตเจพเจน เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡... เจ…เจคเฉ‡ เจ‰เจน เจธเจนเฉ€ เจนเจจ!

เจชเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ (เจฎเฉˆเจ‚ เจนเจœเจผเจพเจฐเจพเจ‚ เจฆเฉ€ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚) เจœเจพเจ‚ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฎเจฟเจฒเฉ€เจธเจ•เจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจธเฉฐเจ˜เจฐเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจงเจพเจฐเจจเจพ เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ•เจฒเจชเจจเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจฆเฉ‹เจตเจพเจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจจเจพเจฒ เจจเจœเจฟเฉฑเจ เจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆ! เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจฟเฉฐเจฆเฉ‚ เจจเฉ‚เฉฐ เจชเจพเจฐ เจ•เจฐเจจ เจฒเจˆ เจฒเฉ‹เฉœ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจฎเจพเจ‚ เจจเจนเฉ€เจ‚ เจฌเจฟเจคเจพเจตเจพเจ‚เจ—เจพเฅค เจ‡เจน เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฒเจพเจ—เจค-เจ…เจงเจพเจฐเจฟเจค เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฆเฉ€ เจงเจพเจฐเจจเจพ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ (เจ•เฉ€เจฎเจค เจ…เจงเจพเจฐเจฟเจค เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ).

เจธเฉฐเจ•เจฒเจช

เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจธเจฎเจพเจ‚ เจ—เฉเฉฐเจเจฒเจคเจพ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจฒเจˆ เจ‡เฉฑเจ• เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจ•เจฟเฉฐเจจเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เฉ‡เจ—เจพ. เจ‡เจธ เจ—เฉเฉฐเจเจฒเจคเจพ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจตเฉฑเจกเฉ‡ O เจ—เจฃเจฟเจคเจฟเจ• เจธเฉฐเจ•เฉ‡เจค เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจน เจธเฉฐเจ•เฉ‡เจค เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ‡ เจจเจพเจฒ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‹ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจ‡เจจเจชเฉเจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจ•เจฟเฉฐเจจเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจ•เจนเจฟเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ "เจ‡เจธ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจตเจฟเฉฑเจš O(some_function()) เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจนเฉˆ", เจคเจพเจ‚ เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ‡เฉฑเจ• เจจเจฟเจธเจผเจšเจฟเจค เจฎเจพเจคเจฐเจพ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฒเจˆ some_function(a_certain_amount_of_data) เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ เจ‡เจน เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจฎเจพเจ‡เจจเฉ‡ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ**, เจนเฉ‹เจฐ ** เจกเจพเจŸเจพ เจตเจพเจฒเฉ€เจ…เจฎ เจตเจงเจฃ เจจเจพเจฒ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจฆเฉ€ เจนเฉˆ. เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจธเจนเฉ€ เจธเฉฐเจ–เจฟเจ† เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€, เจชเจฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจธเจฎเฉ‡เจ‚ เจฆเจพ เจ…เฉฐเจฆเจพเจœเจผเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจตเจงเฉ€เจ† เจคเจฐเฉ€เจ•เจพ เจนเฉˆเฅค

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ‡เจธ เจ—เฉเจฐเจพเจซเจผ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจธเจฎเฉ‡เจ‚ เจฆเฉ€เจ†เจ‚ เจœเจŸเจฟเจฒเจคเจพเจตเจพเจ‚ เจฒเจˆ เจ‡เจจเจชเฉเจŸ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฒเจ˜เฉ‚เจ—เจฃเจ• เจธเจ•เฉ‡เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€เฅค เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ 1 เจคเฉ‹เจ‚ 1 เจฌเจฟเจฒเฉ€เจ…เจจ เจคเฉฑเจ• เจตเจง เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ:

  • O(1) เจœเจพเจ‚ เจธเจฅเจฟเจฐ เจœเจŸเจฟเจฒเจคเจพ เจธเจฅเจฟเจฐ เจฐเจนเจฟเฉฐเจฆเฉ€ เจนเฉˆ (เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจœเจŸเจฟเจฒเจคเจพ เจจเจนเฉ€เจ‚ เจ•เจฟเจนเจพ เจœเจพเจตเฉ‡เจ—เจพ)เฅค
  • O(เจฒเจพเจ—เจ‡เจจ(n)) เจ…เจฐเจฌเจพเจ‚ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจตเฉ€ เจ˜เฉฑเจŸ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ.
  • เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจกเฉ€ เจฎเฉเจธเจผเจ•เจฒ - O(n2), เจœเจฟเฉฑเจฅเฉ‡ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจงเจฆเฉ€ เจนเฉˆ.
  • เจนเฉ‹เจฐ เจฆเฉ‹ เจœเจŸเจฟเจฒเจคเจพเจตเจพเจ‚ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจงเจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจฎเจฟเจธเจพเจฒ

เจฅเฉ‹เฉœเฉเจนเฉ‡ เจœเจฟเจนเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ, O(1) เจ…เจคเฉ‡ O(n2) เจตเจฟเจšเจ•เจพเจฐ เจ…เฉฐเจคเจฐ เจจเจพ-เจฎเจพเจคเจฐ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจนเฉˆ เจœเจฟเจธเจจเฉ‚เฉฐ 2000 เจคเฉฑเจคเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

  • O(1) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 1 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจ•เจฐเฉ‡เจ—เจพ
  • O(log(n)) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 7 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจนเฉ‹เจฃเจ—เฉ‡
  • O(n) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 2 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจนเฉ‹เจฃเจ—เฉ‡
  • O(n*log(n)) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ 14 เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจ†เจตเฉ‡เจ—เฉ€
  • O(n2) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 4 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจนเฉ‹เจฃเจ—เฉ‡

O(1) เจ…เจคเฉ‡ O(n2) เจตเจฟเจšเจ•เจพเจฐ เจ…เฉฐเจคเจฐ เจตเฉฑเจกเจพ เจœเจพเจชเจฆเจพ เจนเฉˆ (4 เจฎเจฟเจฒเฉ€เจ…เจจ เจ“เจชเจฐเฉ‡เจธเจผเจจ) เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง 2 ms เจ—เฉเจ† เจฆเฉ‡เจตเฉ‹เจ—เฉ‡, เจฌเฉฑเจธ เจ†เจชเจฃเฉ€เจ†เจ‚ เจ…เฉฑเจ–เจพเจ‚ เจเจชเจ•เจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆเฅค เจฆเจฐเจ…เจธเจฒ, เจ†เจงเฉเจจเจฟเจ• เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจฒเฉฑเจ–เจพเจ‚ เจ“เจชเจฐเฉ‡เจธเจผเจจ. เจ‡เจนเฉ€ เจ•เจพเจฐเจจ เจนเฉˆ เจ•เจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ†เจˆเจŸเฉ€ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ…เจคเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจ‡เฉฑเจ• เจฎเฉเฉฑเจฆเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจ•เจฟเจนเจพ เจนเฉˆ, เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เจธ เจธเฉฐเจ•เจฒเจช เจจเฉ‚เฉฐ เจœเจพเจฃเจจเจพ เจ…เจœเฉ‡ เจตเฉ€ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ. เจœเฉ‡เจ•เจฐ เจ‡เจธ เจตเจพเจฐ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ 1 เจเจฒเฉ€เจฎเฉˆเจ‚เจŸเจธ (เจœเฉ‹ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเจˆ เจ‡เฉฐเจจเจพ เจœเจผเจฟเจ†เจฆเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ) เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจเฉ€ เจชเฉˆเจ‚เจฆเฉ€ เจนเฉˆ:

  • O(1) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 1 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจ•เจฐเฉ‡เจ—เจพ
  • O(log(n)) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 14 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจนเฉ‹เจฃเจ—เฉ‡
  • O(n) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 1 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจนเฉ‹เจฃเจ—เฉ‡
  • O(n*log(n)) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ 14 เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจ†เจตเฉ‡เจ—เฉ€
  • O(n2) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ 1 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ–เจฐเจš เจนเฉ‹เจฃเจ—เฉ‡

เจฎเฉˆเจ‚ เจ—เจฃเจฟเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ•เจนเจพเจ‚เจ—เจพ เจ•เจฟ O(n2) เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เฉŒเจซเฉ€ เจชเฉ€เจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆ (เจฆเฉ‹ เจตเฉ€!)เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจกเฉ‡เจŸเจพ เจตเจพเจฒเฉ€เจ…เจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเฉ‹เจฐ 0 เจœเฉ‹เฉœเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจเจชเจ•เฉ€ เจฒเฉˆเจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ†เจ“ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจตเจฟเฉฑเจš เจšเฉฑเจฒเฉ€เจ

เจนเจตเจพเจฒเฉ‡ เจฒเจˆ:

  • เจ‡เฉฑเจ• เจšเฉฐเจ—เฉ€ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจ–เฉ‹เจœ O(1) เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเฉฑเจค เจฒเฉฑเจญเจฆเฉ€ เจนเฉˆเฅค
  • เจ‡เฉฑเจ• เจšเฉฐเจ—เฉ€-เจธเฉฐเจคเฉเจฒเจฟเจค เจฐเฉเฉฑเจ– เจฆเฉ€ เจ–เฉ‹เจœ O(log(n)) เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค
  • เจ‡เฉฑเจ• เจเจฐเฉ‡ เจฆเฉ€ เจ–เฉ‹เจœ O(n) เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค
  • เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ O(n*log(n)) เจนเฉˆเฅค
  • เจ‡เฉฑเจ• เจ–เจฐเจพเจฌ เจฒเฉœเฉ€เจฌเฉฑเจง เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจตเจฟเฉฑเจš เจœเจŸเจฟเจฒเจคเจพ O(n2) เจนเฉˆเฅค

เจจเฉ‹เจŸ: เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡เฅค

เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจฆเฉ€เจ†เจ‚ เจ•เจˆ เจ•เจฟเจธเจฎเจพเจ‚ เจนเจจ:

  • เจ”เจธเจค เจ•เฉ‡เจธ เจฆเฉเจฐเจฟเจธเจผ
  • เจตเจงเฉ€เจ† เจ•เฉ‡เจธ เจฆเฉเจฐเจฟเจธเจผ
  • เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจฎเจพเฉœเฉ€ เจธเจฅเจฟเจคเฉ€

เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจ…เจ•เจธเจฐ เจธเจญ เจคเฉ‹เจ‚ เจฎเจพเฉœเฉ€ เจธเจฅเจฟเจคเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจธเจฟเจฐเจซ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€, เจชเจฐ เจœเจŸเจฟเจฒเจคเจพ เจ‡เจธ 'เจคเฉ‡ เจตเฉ€ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ:

  • เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ–เจชเจค
  • เจกเจฟเจธเจ• I/O เจ–เจชเจค เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ

เจฌเฉ‡เจธเจผเฉฑเจ•, n2 เจคเฉ‹เจ‚ เจตเฉ€ เจฌเจฆเจคเจฐ เจชเฉ‡เจšเฉ€เจฆเจ—เฉ€เจ†เจ‚ เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ:

  • n4: เจ‡เจน เจญเจฟเจ†เจจเจ• เจนเฉˆ! เจ•เฉเจ เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฅเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจน เจ—เฉเฉฐเจเจฒเจคเจพ เจนเฉˆเฅค
  • 3n: เจ‡เจน เจนเฉ‹เจฐ เจตเฉ€ เจญเฉˆเฉœเจพ เจนเฉˆ! เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจœเจฟเจธเจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจฎเฉฑเจง เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน เจ—เฉเฉฐเจเจฒเจคเจพ เจนเฉˆ (เจ…เจคเฉ‡ เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ).
  • เจซเฉˆเจ•เจŸเฉ‹เจฐเฉ€เจ…เจฒ n: เจคเฉเจธเฉ€เจ‚ เจฅเฉ‹เฉœเฉเจนเฉ‡ เจœเจฟเจนเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจตเฉ€ เจ†เจชเจฃเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‹เจ—เฉ‡เฅค
  • nn: เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจ—เฉเฉฐเจเจฒเจคเจพ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจคเฉ‹เจ‚ เจชเฉเฉฑเจ›เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจฆเจพ เจ–เฉ‡เจคเจฐ เจนเฉˆ...

เจจเฉ‹เจŸ: เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเฉฑเจกเฉ‡ O เจ…เจนเฉเจฆเฉ‡ เจฆเฉ€ เจ…เจธเจฒ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฑเจคเฉ€, เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจตเจฟเจšเจพเจฐเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจ‡เฉฑเจฅเฉ‡ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจตเจฟเจ•เฉ€เจชเฉ€เจกเฉ€เจ† เจ…เจธเจฒเฉ€ (เจ…เจธเจฟเฉฐเจชเจŸเฉ‹เจŸเจฟเจ•) เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฒเจˆเฅค

เจฎเจฟเจฒเจพเจ“

เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจ•เจฐเจฆเฉ‡ เจนเฉ‹? เจ•เฉ€? เจคเฉเจธเฉ€เจ‚ sort() เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเฉ‹... เจ เฉ€เจ• เจนเฉˆ, เจตเจงเฉ€เจ† เจœเจตเจพเจฌ... เจชเจฐ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจธเจฎเจเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน sort() เจซเฉฐเจ•เจธเจผเจจ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ เจ•เจˆ เจšเฉฐเจ—เฉ‡ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจนเจจ, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจค เจ•เจฐเจพเจ‚เจ—เจพ: เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ…เจญเฉ‡เจฆ. เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจจเจนเฉ€เจ‚ เจธเจฎเจ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ›เจพเจ‚เจŸเจฃเจพ เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจฒเจพเจญเจฆเจพเจ‡เจ• เจ•เจฟเจ‰เจ‚ เจนเฉˆ, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจญเจพเจ— เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจญเฉ‡เจฆ เจฆเฉ€ เจฒเฉœเฉ€ เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ เจธเจพเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ†เจฎ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจœเฉเจ†เจ‡เจจ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ เจ…เจญเฉ‡เจฆ เจœเฉเฉœเฉ‹ (เจ…เจญเฉ‡เจฆ เจเจธเฉ‹เจธเฉ€เจเจธเจผเจจ).

เจฎเจฟเจฒเจพเจ“

เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจเจฒเจ—เฉ‹เจฐเจฟเจฅเจฎเจพเจ‚ เจตเจพเจ‚เจ—, เจฎเจฐเจœ เจ•เฉเจฐเจฎ เจ‡เฉฑเจ• เจšเจพเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ: N/2 เจ†เจ•เจพเจฐ เจฆเฉ‡ 2 เจ•เฉเจฐเจฎเจฌเฉฑเจง เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• N- เจคเฉฑเจค เจ•เฉเจฐเจฎเจฌเฉฑเจง เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจจ เจฒเจˆ เจธเจฟเจฐเจซ N เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจ•เจพเจฐเจตเจพเจˆ เจจเฉ‚เฉฐ เจฎเจฐเจœเจฟเฉฐเจ— เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจ‡เจธ เจฆเจพ เจ•เฉ€ เจ…เจฐเจฅ เจนเฉˆ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ‰เจฆเจพเจนเจฐเจฃ เจจเจพเจฒ:

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ‡เจน เจ…เฉฐเจ•เฉœเจพ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เฉฐเจคเจฎ เจ•เฉเจฐเจฎเจฌเฉฑเจง 8-เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจเจฐเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ 2 4-เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจเจฐเฉ‡ เจ‰เฉฑเจคเฉ‡ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจตเจพเจฐ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฆเฉ‹เจตเฉ‡เจ‚ 4-เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจเจฐเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจนเจจ:

  • 1) เจคเฉเจธเฉ€เจ‚ เจฆเฉ‹ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆเจพ เจคเฉฑเจคเจพเจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ (เจธเจผเฉเจฐเฉ‚เจ†เจค เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆเจพ = เจชเจนเจฟเจฒเจพเจ‚)
  • 2) เจซเจฟเจฐ เจ‡เจธเจจเฉ‚เฉฐ 8 เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจชเจพเจ‰เจฃ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเจพ เจฒเจ“
  • 3) เจ…เจคเฉ‡ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจ…เจ—เจฒเฉ‡ เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจคเฉ‡ เจœเจพเจ“ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจญ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเจพ เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจฒเจฟเจ† เจธเฉ€
  • เจ…เจคเฉ‡ 1,2,3 เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพเจ“ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจ‡เฉฑเจ• เจเจฐเฉ‡ เจฆเฉ‡ เจ†เจ–เจฐเฉ€ เจคเฉฑเจค เจคเฉฑเจ• เจจเจนเฉ€เจ‚ เจชเจนเฉเฉฐเจš เจœเจพเจ‚เจฆเฉ‡เฅค
  • เจซเจฟเจฐ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจเจฐเฉ‡ เจฆเฉ‡ เจฌเจพเจ•เฉ€ เจเจฒเฉ€เจฎเฉˆเจ‚เจŸเจธ เจจเฉ‚เฉฐ 8 เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจชเจพเจ‰เจฃ เจฒเจˆ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹เฅค

เจ‡เจน เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฆเฉ‹เจตเฉ‡เจ‚ 4-เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจเจฐเฉ‡ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจเจฐเฉ‡ เจตเจฟเฉฑเจš "เจตเจพเจชเจธ เจœเจพเจฃ" เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจนเฉเจฃ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจšเจพเจฒ เจจเฉ‚เฉฐ เจธเจฎเจเจฆเฉ‡ เจนเจพเจ‚, เจ‡เฉฑเจฅเฉ‡ เจ…เจญเฉ‡เจฆ เจฒเจˆ เจฎเฉ‡เจฐเจพ เจธเฉ‚เจกเฉ‹เจ•เฉ‹เจก เจนเฉˆ:

array mergeSort(array a)
   if(length(a)==1)
      return a[0];
   end if

   //recursive calls
   [left_array right_array] := split_into_2_equally_sized_arrays(a);
   array new_left_array := mergeSort(left_array);
   array new_right_array := mergeSort(right_array);

   //merging the 2 small ordered arrays into a big one
   array result := merge(new_left_array,new_right_array);
   return result;

เจฎเจฐเจœ เจธเฉ‹เจฐเจŸ เจ‡เฉฑเจ• เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเจฟเจฐ เจฎเฉ‚เจฒ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจจเจคเฉ€เจœเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฒเฉฑเจญเจฆเจพ เจนเฉˆ (เจจเฉ‹เจŸ: เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจตเฉฐเจกเฉ‹ เจ…เจคเฉ‡ เจœเจฟเฉฑเจคเจฃ เจฒเจˆ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเฉ‡ เจนเฉ‹, เจšเจฟเฉฐเจคเจพ เจจเจพ เจ•เจฐเฉ‹; เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจฆเฉ‡เจ–เจฟเจ† เจคเจพเจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจธเจฎเจ เจจเจนเฉ€เจ‚ เจ†เจˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เจน เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจ‡เจธ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจฆเฉ‹-เจชเฉœเจพเจ… เจฆเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจตเจœเฉ‹เจ‚ เจฆเฉ‡เจ–เจฆเจพ เจนเจพเจ‚:

  • เจกเจฟเจตเฉ€เจœเจผเจจ เจชเฉœเจพเจ…, เจœเจฟเฉฑเจฅเฉ‡ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจ›เฉ‹เจŸเฉ‡ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ
  • เจ›เจพเจ‚เจŸเจฃ เจฆเจพ เจชเฉœเจพเจ… เจ‰เจน เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจเจฐเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจเจฐเฉ‡เจ†เจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจฏเฉ‚เจจเฉ€เจ…เจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡)เฅค

เจกเจฟเจตเฉ€เจœเจผเจจ เจชเฉœเจพเจ…

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจกเจฟเจตเฉ€เจœเจผเจจ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš, เจเจฐเฉ‡ เจจเฉ‚เฉฐ 3 เจชเฉœเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจฏเฉ‚เจจเฉ€เจŸเจฐเฉ€ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ•เจฆเจฎเจพเจ‚ เจฆเฉ€ เจฐเจธเจฎเฉ€ เจธเฉฐเจ–เจฟเจ† log(N) เจนเฉˆ (เจ•เจฟเจ‰เจ‚เจ•เจฟ N=8, log(N) = 3)เฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจชเจคเจพ เจนเฉˆ?

เจฎเฉˆเจ‚ เจชเฉเจฐเจคเจฟเจญเจพเจตเจพเจจ เจนเจพเจ‚! เจ‡เฉฑเจ• เจธเจผเจฌเจฆ เจตเจฟเฉฑเจš - เจ—เจฃเจฟเจค. เจ‡เจน เจตเจฟเจšเจพเจฐ เจ‡เจน เจนเฉˆ เจ•เจฟ เจนเจฐเฉ‡เจ• เจ•เจฆเจฎ เจ…เจธเจฒ เจเจฐเฉ‡ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ 2 เจจเจพเจฒ เจตเฉฐเจกเจฆเจพ เจนเฉˆเฅค เจ•เจฆเจฎเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ‰เจน เจนเฉˆ เจœเจฟเฉฐเจจเฉ€ เจตเจพเจฐ เจคเฉเจธเฉ€เจ‚ เจ…เจธเจฒ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจฆเฉ‹ เจตเจฟเฉฑเจš เจตเฉฐเจก เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจ‡เฉฑเจ• เจฒเจ˜เฉ‚เจ—เจฃเจ• (เจฌเฉ‡เจธ 2) เจฆเฉ€ เจธเจนเฉ€ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจนเฉˆเฅค

เจ›เจพเจ‚เจŸเฉ€ เจฆเจพ เจชเฉœเจพเจ…

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ›เจพเจ‚เจŸเฉ€ เจฆเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เจ•เจธเจพเจฐ (เจธเจฟเฉฐเจ—เจฒ-เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ) เจเจฐเฉ‡ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค เจนเจฐ เจชเจ— เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจคเฉเจธเฉ€เจ‚ เจฎเจฒเจŸเฉ€เจชเจฒ เจฎเจฐเจœ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ•เฉเฉฑเจฒ เจฒเจพเจ—เจค N = 8 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉˆ:

  • เจชเจนเจฟเจฒเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ 4 เจ…เจญเฉ‡เจฆ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจš 2 เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ
  • เจฆเฉ‚เจœเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ 2 เจ…เจญเฉ‡เจฆ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจš 4 เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ
  • เจคเฉ€เจœเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ 1 เจ…เจญเฉ‡เจฆ เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจ•เฉ€เจฎเจค 8 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉˆ

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจฒเฉŒเจ—(เจเจจ) เจ•เจฆเจฎ เจนเจจ, เจ•เฉเฉฑเจฒ เจฒเจพเจ—เจค เจเจจ * log(N) เจ“เจชเจฐเฉ‡เจธเจผเจจ.

เจฎเจฟเจฒเจพเจจ เจฒเฉœเฉ€ เจฆเฉ‡ เจซเจพเจ‡เจฆเฉ‡

เจ‡เจน เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ‡เฉฐเจจเจพ เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?

เจ•เจฟเจ‰เจ‚เจ•เจฟ:

  • เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจซเฉเจŸเจชเฉเจฐเจฟเฉฐเจŸ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฒเจˆ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจจเจตเฉ‡เจ‚ เจเจฐเฉ‡ เจจเจพ เจฌเจฃเจพเจ“ เจชเจฐ เจธเจฟเฉฑเจงเฉ‡ เจ‡เจจเจชเฉเจŸ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจธเฉ‹เจงเฉ‹เฅค

เจจเฉ‹เจŸ: เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเจพ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ in-เจฆเฉ€ เจœเจ—เฉเจนเจพ (เจตเจพเจงเฉ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ›เจพเจ‚เจŸเจฃเจพ)เฅค

  • เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจกเจฟเจธเจ• เจธเจชเฉ‡เจธ เจ…เจคเฉ‡ เจฅเฉ‹เฉœเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจฌเจฟเจจเจพเจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจกเจฟเจธเจ• I/O เจ“เจตเจฐเจนเฉˆเฉฑเจก เจ–เจฐเจšเฉ‡เฅค เจ‡เจน เจตเจฟเจšเจพเจฐ เจธเจฟเจฐเจซ เจ‰เจนเจจเจพเจ‚ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจฒเฉ‹เจก เจ•เจฐเจจเจพ เจนเฉˆ เจœเฉ‹ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจ•เฉ€เจคเฉ‡ เจœเจพ เจฐเจนเฉ‡ เจนเจจ. เจ‡เจน เจ‰เจฆเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ 100-เจฎเฉˆเจ—เจพเจฌเจพเจˆเจŸ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฌเจซเจผเจฐ เจจเจพเจฒ เจฎเจฒเจŸเฉ€-เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจŸเฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจจเฉ‹เจŸ: เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเจพ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจฌเจพเจนเจฐเฉ€ เจ•เจฟเจธเจฎ.

  • เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจˆ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚/เจฅเฉเจฐเฉˆเฉฑเจกเจพเจ‚/เจธเจฐเจตเจฐเจพเจ‚ 'เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจŸเจก เจฎเจฐเจœ เจ•เฉเจฐเจฎ เจ‡เฉฑเจ• เจฎเฉเฉฑเจ– เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆ เจนเจพเจกเฉ‹เจช (เจœเฉ‹ เจ•เจฟ เจตเฉฑเจกเฉ‡ เจกเฉ‡เจŸเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจขเจพเจ‚เจšเจพ เจนเฉˆ)เฅค

  • เจ‡เจน เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเฉ€เจก เจจเฉ‚เฉฐ เจธเฉ‹เจจเฉ‡ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆ (เจ…เจธเจฒ เจตเจฟเฉฑเจš!)

เจ‡เจน เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจ เจตเจพเจฒเจพ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ (เจœเฉ‡ เจธเจพเจฐเฉ‡ เจจเจนเฉ€เจ‚) เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ•เฉ‡เจตเจฒ เจ‡เฉฑเจ• เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจนเฉ‹เจฐ เจœเจพเจฃเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ–เฉ‹เจœ เจฆเจพ เจ•เฉฐเจฎ, เจœเฉ‹ เจ†เจฎ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ‡ เจšเฉฐเจ—เฉ‡ เจ…เจคเฉ‡ เจจเฉเจ•เจธเจพเจจ เจฌเจพเจฐเฉ‡ เจšเจฐเจšเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจเจฐเฉ‡, เจŸเฉเจฐเฉ€ เจ…เจคเฉ‡ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ

เจนเฉเจฃ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจ…เจคเฉ‡ เจ›เจพเจ‚เจŸเฉ€ เจฆเฉ‡ เจตเจฟเจšเจพเจฐ เจจเฉ‚เฉฐ เจธเจฎเจเจฆเฉ‡ เจนเจพเจ‚, เจฎเฉˆเจจเฉ‚เฉฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ 3 เจกเฉ‡เจŸเจพ เจขเจพเจ‚เจšเฉ‡ เจฌเจพเจฐเฉ‡ เจฆเฉฑเจธเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ. เจ‡เจน เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ†เจงเฉเจจเจฟเจ• เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฆเจพ เจ†เจงเจพเจฐ เจนเจจ. เจฎเฉˆเจ‚ เจธเฉฐเจ•เจฒเจช เจตเฉ€ เจชเฉ‡เจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจธเฉ‚เจšเจ•เจพเจ‚เจ•.

เจเจฐเฉ‡

เจ‡เฉฑเจ• เจฆเฉ‹-เจ…เจฏเจพเจฎเฉ€ เจเจฐเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจธเจฐเจฒ เจกเจพเจŸเจพ เจฌเจฃเจคเจฐ เจนเฉˆเฅค เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจเจฐเฉ‡ เจตเจœเฉ‹เจ‚ เจธเฉ‹เจšเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ:

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ‡เจน 2-เจ…เจฏเจพเจฎเฉ€ เจเจฐเฉ‡ เจ•เจคเจพเจฐเจพเจ‚ เจ…เจคเฉ‡ เจ•เจพเจฒเจฎเจพเจ‚ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจนเฉˆ:

  • เจนเจฐ เจฒเจพเจˆเจจ เจ‡เจ•เจพเจˆ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ
  • เจ•เจพเจฒเจฎ เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ‡เจ•เจพเจˆ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค
  • เจนเจฐเฉ‡เจ• เจ•เจพเจฒเจฎ เจ‡เฉฑเจ• เจ–เจพเจธ เจ•เจฟเจธเจฎ เจฆเจพ เจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ (เจชเฉ‚เจฐเจจ เจ…เฉฐเจ•, เจธเจคเจฐ, เจฎเจฟเจคเฉ€...)เฅค

เจ‡เจน เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผ เจ•เจฐเจจ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆ, เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจ–เจพเจธ เจฎเฉเฉฑเจฒ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ‡เจน เจ‰เจšเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฏเฉ‚เจ•เฉ‡ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจธเจพเจฐเฉ‡ เจฎเฉเฉฐเจกเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ เจนเจฐเฉ‡เจ• เจ•เจคเจพเจฐ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€ เจ•เจฟ เจ•เฉ€ เจ‰เจน เจ•เจคเจพเจฐ เจฏเฉ‚เจ•เฉ‡ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉˆ เจœเจพเจ‚ เจจเจนเฉ€เจ‚เฅค เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ N เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจฆเฉ€ เจ•เฉ€เจฎเจค เจฆเฉ‡เจตเฉ‡เจ—เจพเจ•เจฟเฉฑเจฅเฉ‡ N - เจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€, เจœเฉ‹ เจ•เจฟ เจฎเจพเฉœเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ•เฉ€ เจ•เฉ‹เจˆ เจคเฉ‡เจœเจผ เจคเจฐเฉ€เจ•เจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ? เจนเฉเจฃ เจธเจฎเจพเจ‚ เจ† เจ—เจฟเจ† เจนเฉˆ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจฐเฉเฉฑเจ–เจพเจ‚ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจนเฉ‹ เจธเจ•เฉ€เจเฅค

เจจเฉ‹เจŸ: เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ†เจงเฉเจจเจฟเจ• เจกเจพเจŸเจพเจฌเฉ‡เจธ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉเจธเจผเจฒเจคเจพ เจจเจพเจฒ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจเจฐเฉ‡ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ: เจนเฉ€เจช-เจธเฉฐเจ—เจ เจฟเจค เจŸเฉ‡เจฌเจฒ เจ…เจคเฉ‡ เจ‡เฉฐเจกเฉˆเจ•เจธ-เจธเฉฐเจ—เจ เจฟเจค เจŸเฉ‡เจฌเจฒเฅค เจชเจฐ เจ‡เจน เจ•เจพเจฒเจฎเจพเจ‚ เจฆเฉ‡ เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ–เจพเจธ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจœเจฒเจฆเฉ€ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเจพ.

เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจŸเฉเจฐเฉ€ เจ…เจคเฉ‡ เจ‡เฉฐเจกเฉˆเจ•เจธ

เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจ–เฉ‹เจœ เจฐเฉเฉฑเจ– เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจตเจพเจฒเจพ เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจฐเฉเฉฑเจ– เจนเฉˆ, เจนเจฐเฉ‡เจ• เจจเฉ‹เจก เจฆเฉ€ เจ•เฉเฉฐเจœเฉ€ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ:

  • เจ–เฉฑเจฌเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง
  • เจธเฉฑเจœเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ

เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจ‡เจธ เจฆเจพ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ—เจค เจ…เจฐเจฅ เจ•เฉ€ เจนเฉˆ

เจ†เจˆเจกเฉ€เจ†

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ‡เจธ เจฐเฉเฉฑเจ– เจตเจฟเฉฑเจš N = 15 เจคเฉฑเจค เจนเจจเฅค เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจฎเฉˆเจ‚ 208 เจฆเฉ€ เจญเจพเจฒ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚:

  • เจฎเฉˆเจ‚ เจฐเฉ‚เจŸ เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจœเจฟเจธเจฆเฉ€ เจ•เฉเฉฐเจœเฉ€ 136 เจนเฉˆเฅค 136<208 เจคเฉ‹เจ‚, เจฎเฉˆเจ‚ เจจเฉ‹เจก 136 เจฆเฉ‡ เจธเฉฑเจœเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฆเจพ เจนเจพเจ‚เฅค
  • 398>208 เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจจเฉ‹เจก 398 เจฆเฉ‡ เจ–เฉฑเจฌเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจฐเจฟเจนเจพ เจนเจพเจ‚
  • 250>208 เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจจเฉ‹เจก 250 เจฆเฉ‡ เจ–เฉฑเจฌเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจฐเจฟเจนเจพ เจนเจพเจ‚
  • 200<208, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจจเฉ‹เจก 200 เจฆเฉ‡ เจธเฉฑเจœเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจฐเจฟเจนเจพ เจนเจพเจ‚เฅค เจชเจฐ 200 เจฆเจพ เจ•เฉ‹เจˆ เจธเจนเฉ€ เจธเจฌเจŸเฉเจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจฎเฉเฉฑเจฒ เจฎเฉŒเจœเฉ‚เจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจ•เจฟเจ‰เจ‚เจ•เจฟ เจœเฉ‡เจ•เจฐ เจ‡เจน เจฎเฉŒเจœเฉ‚เจฆ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจธเจนเฉ€ เจธเจฌเจŸเฉเจฐเฉ€ 200 เจตเจฟเฉฑเจš เจนเฉ‹เจตเฉ‡เจ—เจพ)เฅค

เจนเฉเจฃ เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจฎเฉˆเจ‚ 40 เจฆเฉ€ เจญเจพเจฒ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚

  • เจฎเฉˆเจ‚ เจฐเฉ‚เจŸ เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจœเจฟเจธเจฆเฉ€ เจ•เฉเฉฐเจœเฉ€ 136 เจนเฉˆเฅค 136 > 40 เจคเฉ‹เจ‚, เจฎเฉˆเจ‚ เจจเฉ‹เจก 136 เจฆเฉ‡ เจ–เฉฑเจฌเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฆเจพ เจนเจพเจ‚เฅค
  • 80 > 40, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจจเฉ‹เจก 80 เจฆเฉ‡ เจ–เฉฑเจฌเฉ‡ เจธเจฌเจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจฐเจฟเจนเจพ เจนเจพเจ‚
  • 40 = 40, เจจเฉ‹เจก เจฎเฉŒเจœเฉ‚เจฆ เจนเฉˆ. เจฎเฉˆเจ‚ เจจเฉ‹เจก เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เจคเจพเจฐ ID เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเจพเจ‚ (เจคเจธเจตเฉ€เจฐ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ†) เจ…เจคเฉ‡ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจ•เจคเจพเจฐ ID เจฒเจˆ เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจตเฉ‡เจ–เจฆเจพ เจนเจพเจ‚เฅค
  • เจ•เจคเจพเจฐ ID เจจเฉ‚เฉฐ เจœเจพเจฃเจจเจพ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจฃเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค

เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจฆเฉ‹เจตเฉ‡เจ‚ เจ–เฉ‹เจœเจพเจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจฆเจฐเจ–เจค เจฆเฉ‡ เจ…เฉฐเจฆเจฐเจฒเฉ‡ เจชเฉฑเจงเจฐเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเจพ เจ–เจฐเจšเจพ เจฆเฉ‡เจตเฉ‡เจ—เฉ€. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ…เจญเฉ‡เจฆ เจ•เฉเจฐเจฎ เจฌเจพเจฐเฉ‡ เจญเจพเจ— เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจจเจพเจฒ เจชเฉœเฉเจนเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจฒเฉŒเจ—(N) เจชเฉฑเจงเจฐ เจนเจจเฅค เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ, เจ–เฉ‹เจœ เจฒเจพเจ—เจค เจฒเจพเจ—(N), เจญเฉˆเฉœเจพ เจจเจนเฉ€เจ‚!

เจ†เจ‰ เจ†เจชเจฃเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจตเฉฑเจฒ เจฎเฉเฉœเจฆเฉ‡ เจนเจพเจ‚

เจชเจฐ เจ‡เจน เจฌเจนเฉเจค เจ…เจฎเฉ‚เจฐเจค เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ†เจ“ เจ†เจชเจฃเฉ€ เจธเจฎเฉฑเจธเจฟเจ† 'เจคเฉ‡ เจตเจพเจชเจธ เจšเจฒเฉ€เจเฅค เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจฆเฉ€ เจฌเจœเจพเจ, เจ‡เฉฑเจ• เจธเจคเจฐ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเฉ‹ เจœเฉ‹ เจชเจฟเจ›เจฒเฉ€ เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจฆเฉ‡ เจฆเฉ‡เจธเจผ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจฐเฉเฉฑเจ– เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจพเจฐเจฃเฉ€ เจฆเจพ "เจฆเฉ‡เจธเจผ" เจ–เฉ‡เจคเจฐ (เจ•เจพเจฒเจฎ 3) เจนเฉˆ:

  • เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจฏเฉ‚เจ•เฉ‡ เจตเจฟเฉฑเจš เจ•เฉŒเจฃ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ
  • เจคเฉเจธเฉ€เจ‚ เจจเฉ‹เจก เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจฐเฉเฉฑเจ– เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจ—เฉเจฐเฉ‡เจŸ เจฌเฉเจฐเจฟเจŸเฉ‡เจจ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ
  • "UKnode" เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ UK เจตเจฐเจ•เจฐ เจฐเจฟเจ•เจพเจฐเจกเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฎเจฟเจฒเฉ‡เจ—เฉ€เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจตเจฐเจคเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจ‡เจธ เจ–เฉ‹เจœ เจฒเจˆ N เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฌเจœเจพเจ เจฒเจพเจ—(N) เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจ†เจตเฉ‡เจ—เฉ€เฅค เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃเฉ‡ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจธเฉ€ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจธเฉ‚เจšเจ•เจพเจ‚เจ•.

เจคเฉเจธเฉ€เจ‚ เจซเฉ€เจฒเจก เจฆเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฎเฉ‚เจน (เจธเจŸเจฐเจฟเฉฐเจ—, เจจเฉฐเจฌเจฐ, 2 เจฒเจพเจˆเจจเจพเจ‚, เจจเฉฐเจฌเจฐ เจ…เจคเฉ‡ เจธเจคเจฐ, เจฎเจฟเจคเฉ€...) เจฒเจˆ เจ‡เฉฑเจ• เจ‡เฉฐเจกเฉˆเจ•เจธ เจŸเฉเจฐเฉ€ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ (เจœเจฟเจตเฉ‡เจ‚ เจซเฉ€เจฒเจก เจธเจฎเฉ‚เจนเจพเจ‚) เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจˆ เจซเฉฐเจ•เจธเจผเจจ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เฉ‹เฅค เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจตเจฟเจšเจ•เจพเจฐ เจ†เจฐเจกเจฐ เจ•เจฐเฉ‹ (เจœเฉ‹ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจ•เจฟเจธเจฎ เจฒเจˆ เจ•เฉ‡เจธ เจนเฉˆ)เฅค

B+TreeIndex

เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจฐเฉเฉฑเจ– เจ‡เฉฑเจ• เจ–เจพเจธ เจฎเฉเฉฑเจฒ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจฆเฉ‹ เจฎเฉเฉฑเจฒเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจ•เจˆ เจคเฉฑเจค เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹. เจ‡เจธเจฆเฉ€ เจ•เฉ€เจฎเจค O(N) เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเฉเจฐเฉ€ เจตเจฟเฉฑเจš เจนเจฐเฉ‡เจ• เจจเฉ‹เจก เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจœเจพเจ‚เจš เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€ เจ•เจฟ เจ•เฉ€ เจ‡เจน เจ‡เจนเจจเจพเจ‚ เจฆเฉ‹ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจนเฉˆ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฐเฉเฉฑเจ– เจฆเฉ‡ เจ†เจฐเจกเจฐเจก เจŸเฉเจฐเจพเจตเจฐเจธเจฒ เจจเจพเจฒ)เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจ“เจชเจฐเฉ‡เจธเจผเจจ เจกเจฟเจธเจ• I/O เจ…เจจเฉเจ•เฉ‚เจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจŸเฉเจฐเฉ€ เจชเฉœเฉเจนเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค เจธเจพเจจเฉ‚เฉฐ เจ•เฉเจธเจผเจฒเจคเจพ เจจเจพเจฒ เจšเจฒเจพเจ‰เจฃ เจฆเจพ เจคเจฐเฉ€เจ•เจพ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจธเฉ€เจฎเจพ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€. เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ, เจ†เจงเฉเจจเจฟเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฌเฉ€ + เจŸเฉเจฐเฉ€ เจจเจพเจฎเจ• เจชเจฟเจ›เจฒเฉ‡ เจŸเฉเจฐเฉ€ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเฉ‹เจงเฉ‡ เจนเฉ‹เจ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจ• B+ เจฐเฉเฉฑเจ– เจฆเฉ‡ เจฐเฉเฉฑเจ– เจตเจฟเฉฑเจš:

  • เจธเจฟเจฐเจซเจผ เจธเจญ เจคเฉ‹เจ‚ เจนเฉ‡เจ เจฒเฉ‡ เจจเฉ‹เจกเจธ (เจชเฉฑเจคเฉ‡) เจธเจŸเฉ‹เจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€ (เจธเจฌเฉฐเจงเจค เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจ•เจคเจพเจฐเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€)
  • เจฌเจพเจ•เฉ€ เจจเฉ‹เจก เจ‡เฉฑเจฅเฉ‡ เจนเจจ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจฒเจˆ เจธเจนเฉ€ เจจเฉ‹เจก เจจเฉ‚เฉฐ เจ–เฉ‹เจœ เจฆเฉŒเจฐเจพเจจ.

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‡เฉฑเจฅเฉ‡ เจนเฉ‹เจฐ เจจเฉ‹เจก เจนเจจ (เจฆเฉ‹ เจตเจพเจฐ). เจฆเจฐเจ…เจธเจฒ, เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจตเจพเจงเฉ‚ เจจเฉ‹เจก เจนเจจ, "เจซเฉˆเจธเจฒเจพ เจจเฉ‹เจก", เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจนเฉ€ เจจเฉ‹เจก เจฒเฉฑเจญเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ (เจœเฉ‹ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจ•เจคเจพเจฐเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ)เฅค เจชเจฐ เจ–เฉ‹เจœ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจ…เจœเฉ‡ เจตเฉ€ O(log(N)) เจนเฉˆ (เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจชเฉฑเจงเจฐ เจนเฉˆ)เฅค เจตเฉฑเจกเจพ เจซเจฐเจ• เจ‡เจน เจนเฉˆ เจ•เจฟ เจนเฉ‡เจ เจฒเฉ‡ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจจเฉ‹เจก เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจ‰เฉฑเจคเจฐเจพเจงเจฟเจ•เจพเจฐเฉ€ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ.

เจ‡เจธ B+Tree เจจเจพเจฒ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ 40 เจ…เจคเฉ‡ 100 เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฎเฉเฉฑเจฒ เจฒเฉฑเจญ เจฐเจนเฉ‡ เจนเฉ‹:

  • เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ 40 (เจœเจพเจ‚ 40 เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจญ เจคเฉ‹เจ‚ เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจฎเฉเฉฑเจฒ เจœเฉ‡เจ•เจฐ 40 เจฎเฉŒเจœเฉ‚เจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ) เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจชเจฟเจ›เจฒเฉ‡ เจŸเฉเจฐเฉ€ เจจเจพเจฒ เจ•เฉ€เจคเจพ เจธเฉ€เฅค
  • เจซเจฟเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจคเฉเจธเฉ€เจ‚ 40 เจคเฉฑเจ• เจจเจนเฉ€เจ‚ เจชเจนเฉเฉฐเจš เจœเจพเจ‚เจฆเฉ‡ เจนเฉ‹, เจธเจฟเฉฑเจงเฉ‡ เจตเจพเจฐเจธ เจฒเจฟเฉฐเจ•เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ 100 เจตเจพเจฐเจธ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเฉ‹เฅค

เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ M เจ‰เฉฑเจคเจฐเจพเจงเจฟเจ•เจพเจฐเฉ€ เจฒเฉฑเจญเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจฐเฉเฉฑเจ– เจตเจฟเฉฑเจš N เจจเฉ‹เจก เจนเจจเฅค เจ•เจฟเจธเฉ‡ เจ–เจพเจธ เจจเฉ‹เจก เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ เจฒเฉŒเจ—(N) เจฆเฉ€ เจฒเจพเจ—เจค เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจฟเจ›เจฒเฉ‡ เจŸเฉเจฐเฉ€. เจชเจฐ เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจจเฉ‹เจก เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ M เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ‰เฉฑเจคเจฐเจพเจงเจฟเจ•เจพเจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ M เจ‰เฉฑเจคเจฐเจพเจงเจฟเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจฃเจ—เฉ‡. เจ‡เจธ เจ–เฉ‹เจœ เจฆเฉ€ เจ•เฉ€เจฎเจค เจธเจฟเจฐเจซเจผ M+log(N) เจนเฉˆ เจชเจฟเจ›เจฒเฉ‡ เจฐเฉเฉฑเจ– 'เจคเฉ‡ N เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจŸเฉเจฐเฉ€ (เจธเจฟเจฐเจซเจผ M+log(N) เจจเฉ‹เจกเจœเจผ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ), เจœเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ˜เฉฑเจŸ เจกเจฟเจธเจ• เจตเจฐเจคเฉ‹เจ‚เฅค เจœเฉ‡เจ•เจฐ M เจ›เฉ‹เจŸเฉ€ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ 200 เจ•เจคเจพเจฐเจพเจ‚) เจ…เจคเฉ‡ N เจตเฉฑเจกเฉ€ เจนเฉˆ (1 เจ•เจคเจพเจฐเจพเจ‚), เจคเจพเจ‚ เจ‡เฉฑเจ• เจตเฉฑเจกเจพ เจ…เฉฐเจคเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจจเจตเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจนเจจ (เจฆเฉเจฌเจพเจฐเจพ!). เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจคเจพเจฐ เจœเฉ‹เฉœเจฆเฉ‡ เจœเจพเจ‚ เจฎเจฟเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹ (เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจธเฉฐเจฌเฉฐเจงเจฟเจค B+Tree เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจตเจฟเฉฑเจš):

  • เจคเฉเจนเจพเจจเฉ‚เฉฐ B+Tree เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจจเฉ‹เจกเจธ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจ•เฉเจฐเจฎ เจจเฉ‚เฉฐ เจ•เจพเจ‡เจฎ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ…เจฃ-เจ›เจพเจ‚เจŸ เจ•เฉ€เจคเฉ‡ เจฐเฉเฉฑเจ– เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจจเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‹เจ—เฉ‡เฅค
  • เจคเฉเจนเจพเจจเฉ‚เฉฐ B+Tree เจตเจฟเฉฑเจš เจชเฉฑเจงเจฐเจพเจ‚ เจฆเฉ€ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเฉฐเจญเจพเจตเจฟเจค เจธเฉฐเจ–เจฟเจ† เจฐเฉฑเจ–เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ O(log(N)) เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ O(N) เจฌเจฃ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจฌเฉ€+ เจŸเฉเจฐเฉ€ เจธเจตเฉˆ-เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ…เจคเฉ‡ เจธเฉฐเจคเฉเจฒเจฟเจค เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจน เจธเจฎเจพเจฐเจŸ เจกเจฟเจฒเฉ€เจŸ เจ…เจคเฉ‡ เจ‡เจจเจธเจฐเจŸ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจธเฉฐเจญเจต เจนเฉˆเฅค เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• เจฒเจพเจ—เจค 'เจคเฉ‡ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ: B+ เจŸเฉเจฐเฉ€ เจฒเจพเจ—เจค O(log(N)) เจตเจฟเฉฑเจš เจธเฉฐเจฎเจฟเจฒเจจ เจ…เจคเฉ‡ เจฎเจฟเจŸเจพเจ‰เจฃเจพเฅค เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจฒเฉ‹เจ•เจพเจ‚ เจจเฉ‡ เจ‡เจน เจธเฉเจฃเจฟเจ† เจนเฉˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจตเจฟเจšเจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจธเฉฑเจšเจฎเฉเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจคเจพเจฐ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจธเฉฐเจฎเจฟเจฒเจฟเจค/เจ…เฉฑเจชเจกเฉ‡เจŸ/เจฎเจฟเจŸเจพเจ‰เจฃ เจจเฉ‚เฉฐ เจนเฉŒเจฒเฉ€ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹เจ•เจฟเจ‰เจ‚เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจฒเจˆ เจ‡เฉฑเจ• เจฎเจนเจฟเฉฐเจ—เฉ‡ O(log(N)) เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจพเจฐเจฃเฉ€ เจฆเฉ‡ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจœเฉ‹เฉœเจจ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจนเฉ‹เจฐ เจ•เฉฐเจฎ เจฆเจพ เจฌเฉ‹เจ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจชเฉเจฐเจฌเฉฐเจงเจ• (เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ).

เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจตเจฟเจ•เฉ€เจชเฉ€เจกเฉ€เจ† เจฒเฉ‡เจ– 'เจคเฉ‡ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ B+เจŸเฉเจฐเฉ€. เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจฌเฉ€ + เจŸเฉเจฐเฉ€ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹ เจ‡เจน เจฒเฉ‡เจ– ะธ เจ‡เจน เจฒเฉ‡เจ– เจ‡เฉฑเจ• เจชเฉเจฐเจฎเฉเฉฑเจ– MySQL เจกเจฟเจตเฉˆเจฒเจชเจฐ เจคเฉ‹เจ‚เฅค เจ‰เจน เจฆเฉ‹เจตเฉ‡เจ‚ เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเฉเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเจจ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ InnoDB (MySQL เจ‡เฉฐเจœเจฃ) เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฆเจพ เจนเฉˆเฅค

เจจเฉ‹เจŸ: เจ‡เฉฑเจ• เจชเจพเจ เจ• เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฟเจ† เจ•เจฟ, เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐ เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฆเฉ‡ เจ•เจพเจฐเจจ, B+ เจŸเฉเจฐเฉ€ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเฉฐเจคเฉเจฒเจฟเจค เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจนเฉˆเจธเจผเจŸเฉ‡เจฌเจฒ

เจธเจพเจกเจพ เจ†เจ–เจฐเฉ€ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจกเจพเจŸเจพ เจขเจพเจ‚เจšเจพ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจนเฉˆเฅค เจ‡เจน เจฌเจนเฉเจค เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เฉฑเจ• เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจจเจพเจฒ เจธเจพเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ†เจฎ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจœเฉเจ†เจ‡เจจ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจฎเจฟเจฒเฉ‡เจ—เฉ€ เจœเจฟเจธเจจเฉ‚เฉฐ เจนเฉˆเจธเจผ เจœเฉ‹เจจ (เจนเฉˆเจธเจผ เจœเฉ‹เฉœ) เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจนเฉˆเจธเจผ เจœเฉเฉœเฉ‹). เจ‡เจน เจกเจพเจŸเจพ เจขเจพเจ‚เจšเจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฆเฉเจ†เจฐเจพ เจ•เฉเจ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจตเฉ€ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ. เจคเจพเจฒเจพ เจŸเฉ‡เจฌเจฒ เจœ เจฌเจซเจฐ เจชเฉ‚เจฒ, เจ…เจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจฆเฉ‹เจตเจพเจ‚ เจงเจพเจฐเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡)เฅค

เจ‡เฉฑเจ• เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพ เจขเจพเจ‚เจšเจพ เจนเฉˆ เจœเฉ‹ เจ†เจชเจฃเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจคเฉฑเจค เจจเฉ‚เฉฐ เจœเจฒเจฆเฉ€ เจฒเฉฑเจญ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

  • เจ•เฉเฉฐเจœเฉ€ เจคเฉเจนเจพเจกเฉ‡ เจคเฉฑเจคเจพเจ‚ เจฒเจˆ
  • เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฒเจˆ. เจ—เจฃเจจเจพ เจ•เฉ€เจคเฉ€ เจ•เฉเฉฐเจœเฉ€ เจนเฉˆเจธเจผ เจคเฉฑเจคเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ (เจœเจฟเจธเจจเฉ‚เฉฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจนเจฟเฉฑเจธเฉ‡ ).
  • เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจซเฉฐเจ•เจธเจผเจจ. เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจธเจนเฉ€ เจ–เฉฐเจก เจฒเฉฑเจญ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจคเฉเจฒเจจเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ‰เจน เจคเฉฑเจค เจฒเฉฑเจญเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจฒเฉฑเจญ เจฐเจนเฉ‡ เจนเฉ‹เฅค

เจธเจงเจพเจฐเจจ เจ‰เจฆเจพเจนเจฐเจจ

เจ†เจ‰ เจ‡เฉฑเจ• เจธเจชเจธเจผเจŸ เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆเจ:

เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ (เจญเจพเจ— 1)

เจ‡เจธ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจตเจฟเฉฑเจš 10 เจนเจฟเฉฑเจธเฉ‡ เจนเจจเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉˆเจ‚ เจ†เจฒเจธเฉ€ เจนเจพเจ‚, เจฎเฉˆเจ‚ เจธเจฟเจฐเจซเจผ 5 เจ–เฉฐเจกเจพเจ‚ เจฆเฉ€ เจคเจธเจตเฉ€เจฐ เจฌเจฃเจพเจˆ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจœเจพเจฃเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจšเฉเจธเจค เจนเฉ‹, เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจพเจ•เฉ€ 5 เจฆเฉ€ เจคเจธเจตเฉ€เจฐ เจฆเจฟเจ†เจ‚เจ—เจพเฅค เจฎเฉˆเจ‚ เจ•เฉเฉฐเจœเฉ€ เจฆเจพ เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจฎเฉ‹เจกเจฟเจŠเจฒเฉ‹ 10 เจตเจฐเจคเจฟเจ† เจนเฉˆเฅค เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจ‡เจธเจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ เจคเฉฑเจค เจฆเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฆเจพ เจธเจฟเจฐเจซ เจ†เจ–เจฐเฉ€ เจ…เฉฐเจ• เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเจพเจ‚:

  • เจœเฉ‡เจ•เจฐ เจ†เจ–เจฐเฉ€ เจ…เฉฐเจ• 0 เจนเฉˆ, เจคเจพเจ‚ เจคเฉฑเจค เจ–เฉฐเจก 0 เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ,
  • เจœเฉ‡เจ•เจฐ เจ†เจ–เจฐเฉ€ เจ…เฉฐเจ• 1 เจนเฉˆ, เจคเจพเจ‚ เจคเฉฑเจค เจ–เฉฐเจก 1 เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ,
  • เจœเฉ‡เจ•เจฐ เจ†เจ–เจฐเฉ€ เจ…เฉฐเจ• 2 เจนเฉˆ, เจคเจพเจ‚ เจคเฉฑเจค เจ–เฉ‡เจคเจฐ 2 เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ,
  • ...

เจคเฉเจฒเจจเจพ เจซเฉฐเจ•เจธเจผเจจ เจœเฉ‹ เจฎเฉˆเจ‚ เจตเจฐเจคเจฟเจ† เจนเฉˆ เจ‰เจน เจฆเฉ‹ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ•เจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจธเจฎเจพเจจเจคเจพ เจนเฉˆเฅค

เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจคเฉฑเจค 78 เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹:

  • เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ 78 เจฒเจˆ เจนเฉˆเจธเจผ เจ•เฉ‹เจก เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ 8 เจนเฉˆเฅค
  • เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจ–เฉฐเจก 8 เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธเจฆเจพ เจชเจนเจฟเจฒเจพ เจคเฉฑเจค 78 เจนเฉˆ.
  • เจ‰เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจˆเจŸเจฎ 78 เจตเจพเจชเจธ เจ•เจฐเจฆเฉ€ เจนเฉˆ
  • เจ–เฉ‹เจœ เจฆเฉ€ เจฒเจพเจ—เจค เจธเจฟเจฐเจซ 2 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉˆ (เจ‡เฉฑเจ• เจนเฉˆเจธเจผ เจฎเฉเฉฑเจฒ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ เจนเจฟเฉฑเจธเฉ‡ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจคเฉฑเจค เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃ เจฒเจˆ)เฅค

เจนเฉเจฃ เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจคเฉฑเจค 59 เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹:

  • เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ 59 เจฒเจˆ เจนเฉˆเจธเจผ เจ•เฉ‹เจก เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ 9 เจนเฉˆเฅค
  • เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจ–เฉฐเจก 9 เจตเจฟเฉฑเจš เจ–เฉ‹เจœ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฎเจฟเจฒเจฟเจ† เจชเจนเจฟเจฒเจพ เจคเฉฑเจค 99 เจนเฉˆเฅค 99!=59 เจคเฉ‹เจ‚, เจคเฉฑเจค 99 เจ‡เฉฑเจ• เจตเฉˆเจง เจคเฉฑเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค
  • เจ‰เจธเฉ‡ เจคเจฐเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจฆเฉ‚เจœเจพ เจคเฉฑเจค (9), เจคเฉ€เจœเจพ (79), ..., เจ†เจ–เจฐเฉ€ (29) เจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
  • เจคเฉฑเจค เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเจฟเจ†เฅค
  • เจ–เฉ‹เจœ เจฒเจˆ 7 เจ†เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เจค เจ†เจˆ.

เจตเจงเฉ€เจ† เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ เจฒเฉฑเจญ เจฐเจนเฉ‡ เจฎเฉเฉฑเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจฟเจ†เจ‚, เจฒเจพเจ—เจค เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ!

เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจนเฉเจฃ เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจฎเฉ‹เจกเจฟเจŠเจฒเฉ‹ 1 เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเจพ เจนเจพเจ‚ (เจ…เจฐเจฅเจพเจค, เจ†เจ–เจฐเฉ€ 000 เจ…เฉฐเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉˆเจฃเจพ), เจคเจพเจ‚ เจฆเฉ‚เจœเฉ€ เจฒเฉเฉฑเจ•เจ…เจช เจฒเจˆ เจธเจฟเจฐเจซ 000 เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเฉ€ เจฒเจพเจ—เจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ–เฉฐเจก 6 เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจคเฉฑเจค เจจเจนเฉ€เจ‚ เจนเจจเฅค เจ…เจธเจฒ เจšเฉเจฃเฉŒเจคเฉ€ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจฒเฉฑเจญเจฃเจพ เจนเฉˆ เจœเฉ‹ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจเจฒเฉ€เจฎเฉˆเจ‚เจŸเจธ เจตเจพเจฒเฉ€เจ†เจ‚ เจฌเจพเจฒเจŸเฉ€เจ†เจ‚ เจฌเจฃเจพเจตเฉ‡เจ—เจพ.

เจฎเฉ‡เจฐเฉ‡ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจฒเฉฑเจญเจฃเจพ เจ†เจธเจพเจจ เจนเฉˆ. เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ‰เจฆเจพเจนเจฐเจจ เจนเฉˆ, เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจฒเฉฑเจญเจฃเจพ เจตเจงเฉ‡เจฐเฉ‡ เจฎเฉเจธเจผเจ•เจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ•เฉเฉฐเจœเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ:

  • เจธเจคเจฐ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ - เจ†เจ–เจฐเฉ€ เจจเจพเจฎ)
  • 2 เจฒเจพเจˆเจจเจพเจ‚ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ - เจ†เจ–เจฐเฉ€ เจจเจพเจฎ เจ…เจคเฉ‡ เจชเจนเจฟเจฒเจพ เจจเจพเจฎ)
  • 2 เจฒเจพเจˆเจจเจพเจ‚ เจ…เจคเฉ‡ เจฎเจฟเจคเฉ€ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ - เจ†เจ–เจฐเฉ€ เจจเจพเจฎ, เจชเจนเจฟเจฒเจพ เจจเจพเจฎ เจ…เจคเฉ‡ เจœเจจเจฎ เจฎเจฟเจคเฉ€)
  • ...

เจ‡เฉฑเจ• เจšเฉฐเจ—เฉ‡ เจนเฉˆเจธเจผ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ‡ เจจเจพเจฒ, เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจฒเฉเฉฑเจ•เจ…เฉฑเจช เจฆเฉ€ เจฒเจพเจ—เจค O(1).

เจเจฐเฉ‡ เจฌเจจเจพเจฎ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ

เจ‡เฉฑเจ• เจเจฐเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡?

เจนเจฎ, เจšเฉฐเจ—เจพ เจธเจตเจพเจฒเฅค

  • เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เฉฐเจธเจผเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจ—เจฟเจ†, เจ…เจคเฉ‡ เจฌเจพเจ•เฉ€ เจฌเจšเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจกเจฟเจธเจ• 'เจคเฉ‡ เจฐเจนเจฟ เจธเจ•เจฆเฉ‡ เจนเจจเฅค
  • เจ‡เฉฑเจ• เจเจฐเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจฒเจ—เจพเจคเจพเจฐ เจธเจชเฉ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจŸเฉ‡เจฌเจฒ เจฒเฉ‹เจก เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ เจ•เจพเจซเจผเฉ€ เจจเจฟเจฐเฉฐเจคเจฐ เจธเจชเฉ‡เจธ เจฒเฉฑเจญเจฃเจพ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ.
  • เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‰เจน เจ•เฉเฉฐเจœเฉ€ เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฆเฉ‡เจธเจผ เจ…เจคเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€ เจฆเจพ เจ†เจ–เจฐเฉ€ เจจเจพเจฎ)เฅค

เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจฒเฉ‡เจ– เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจพเจตเจพเจนเฉˆเจธเจผเจฎเฉˆเจช, เจœเฉ‹ เจ•เจฟ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจฆเจพ เจ‡เฉฑเจ• เจ•เฉเจธเจผเจฒ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจนเฉˆ; เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจธเฉฐเจ•เจฒเจชเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฒเจˆ Java เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹