ื›ื™ืฆื“ ืคื•ืขืœื™ื ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื (ื—ืœืง 1)

ื”ื™ื™ ื”ื‘ืจ! ืื ื™ ืžืฆื™ื’ ืœืชืฉื•ืžืช ืœื‘ืš ืืช ื”ืชืจื’ื•ื ืฉืœ ื”ืžืืžืจ
"ื›ื™ืฆื“ ืขื•ื‘ื“ ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™".

ื›ืฉื–ื” ืžื’ื™ืข ืœืžืื’ืจื™ ืžื™ื“ืข ื™ื—ืกื™ ืื ื™ ืœื ื™ื›ื•ืœ ืฉืœื ืœื—ืฉื•ื‘ ืฉืžืฉื”ื• ื—ืกืจ. ื”ื ืžืฉืžืฉื™ื ื‘ื›ืœ ืžืงื•ื. ื™ืฉื ื ืžืกื“ื™ ื ืชื•ื ื™ื ืจื‘ื™ื ื•ืฉื•ื ื™ื, ื”ื—ืœ ืž-SQLite ื”ืงื˜ืŸ ื•ื”ืฉื™ืžื•ืฉื™ ื•ืขื“ ืœ-Teradata ื”ืขื•ืฆืžืชื™. ืื‘ืœ ื™ืฉ ืจืง ื›ืžื” ืžืืžืจื™ื ืฉืžืกื‘ื™ืจื™ื ืื™ืš ืžืกื“ ื”ื ืชื•ื ื™ื ืขื•ื‘ื“. ืืชื” ื™ื›ื•ืœ ืœื—ืคืฉ ื‘ืขืฆืžืš ื‘ืืžืฆืขื•ืช "howdoesarelationaldatabasework" ื›ื“ื™ ืœืจืื•ืช ื›ืžื” ืžืขื˜ ืชื•ืฆืื•ืช ื™ืฉ. ื™ืชืจ ืขืœ ื›ืŸ, ื”ืžืืžืจื™ื ื”ืœืœื• ืงืฆืจื™ื. ืื ืืชื” ืžื—ืคืฉ ืืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”ื‘ืื–ื– ื”ืขื“ื›ื ื™ื•ืช ื‘ื™ื•ืชืจ (BigData, NoSQL ืื• JavaScript), ืชืžืฆื ืžืืžืจื™ื ืžืขืžื™ืงื™ื ื™ื•ืชืจ ื”ืžืกื‘ื™ืจื™ื ื›ื™ืฆื“ ื”ื ืคื•ืขืœื™ื.

ื”ืื ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื ื™ืฉื ื™ื ืžื“ื™ ื•ืžืฉืขืžืžื™ื ืžื›ื“ื™ ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœื”ืกื‘ื™ืจ ืื•ืชื ืžื—ื•ืฅ ืœืงื•ืจืกื™ื ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื”, ืžืืžืจื™ ืžื—ืงืจ ื•ืกืคืจื™ื?

ื›ื™ืฆื“ ืคื•ืขืœื™ื ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื (ื—ืœืง 1)

ื›ืžืคืชื—, ืื ื™ ืฉื•ื ื ืœื”ืฉืชืžืฉ ื‘ืžืฉื”ื• ืฉืื ื™ ืœื ืžื‘ื™ืŸ. ื•ืื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืื’ืจื™ ืžื™ื“ืข ื›ื‘ืจ ื™ื•ืชืจ ืž-40 ืฉื ื”, ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืกื™ื‘ื”. ื‘ืžื”ืœืš ื”ืฉื ื™ื, ื‘ื™ืœื™ืชื™ ืžืื•ืช ืฉืขื•ืช ื›ื“ื™ ืœื”ื‘ื™ืŸ ื‘ืืžืช ืืช ื”ืงื•ืคืกืื•ืช ื”ืฉื—ื•ืจื•ืช ื”ืžื•ื–ืจื•ืช ื”ืืœื” ืฉืื ื™ ืžืฉืชืžืฉ ื‘ื”ืŸ ืžื“ื™ ื™ื•ื. ืžืื’ืจื™ ืžื™ื“ืข ื™ื—ืกื™ื™ื ืžืื•ื“ ืžืขื ื™ื™ืŸ ื›ื™ ื”ื ืžื‘ื•ืกืก ืขืœ ืžื•ืฉื’ื™ื ืฉื™ืžื•ืฉื™ื™ื ื•ื ื™ืชื ื™ื ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ. ืื ืืชื” ืžืขื•ื ื™ื™ืŸ ืœื”ื‘ื™ืŸ ืžืกื“ ื ืชื•ื ื™ื, ืืš ืžืขื•ืœื ืœื ื”ื™ื” ืœืš ื–ืžืŸ ืื• ื—ืฉืง ืœื”ืชืขืžืง ื‘ื ื•ืฉื ืจื—ื‘ ื–ื”, ืืชื” ืฆืจื™ืš ืœื™ื”ื ื•ืช ืžืžืืžืจ ื–ื”.

ืœืžืจื•ืช ืฉื”ื›ื•ืชืจืช ืฉืœ ืžืืžืจ ื–ื” ืžืคื•ืจืฉืช, ืžื˜ืจืช ืžืืžืจ ื–ื” ื”ื™ื ืœื ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื. ืœื›ืŸ, ืืชื” ื›ื‘ืจ ืืžื•ืจ ืœื“ืขืช ืื™ืš ืœื›ืชื•ื‘ ื‘ืงืฉืช ื—ื™ื‘ื•ืจ ืคืฉื•ื˜ื” ื•ืฉืื™ืœืชื•ืช ื‘ืกื™ืกื™ื•ืช ื”ื•ื ืื”; ืื—ืจืช ืืชื” ืขืœื•ืœ ืœื ืœื”ื‘ื™ืŸ ืืช ื”ืžืืžืจ ื”ื–ื”. ื–ื” ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉืืชื” ืฆืจื™ืš ืœื“ืขืช, ืื ื™ ืืกื‘ื™ืจ ืืช ื”ืฉืืจ.

ืืชื—ื™ืœ ืขื ื›ืžื” ื™ืกื•ื“ื•ืช ื‘ืžื“ืขื™ ื”ืžื—ืฉื‘, ื›ื’ื•ืŸ ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ืฉืœ ืืœื’ื•ืจื™ืชืžื™ื (BigO). ืื ื™ ื™ื•ื“ืข ืฉื—ืœืงื›ื ืฉื•ื ืื™ื ืืช ื”ืžื•ืฉื’ ื”ื–ื”, ืื‘ืœ ื‘ืœืขื“ื™ื• ืœื ืชื•ื›ืœื• ืœื”ื‘ื™ืŸ ืืช ื”ืžื•ืจื›ื‘ื•ื™ื•ืช ื‘ืชื•ืš ืžืกื“ ื”ื ืชื•ื ื™ื. ืžื›ื™ื•ื•ืŸ ืฉื–ื” ื ื•ืฉื ืขื ืง, ืื ื™ ืืชืžืงื“ ื‘ ืžื” ืฉืื ื™ ื—ื•ืฉื‘ ืฉื—ืฉื•ื‘: ื›ื™ืฆื“ ืžืขื‘ื“ ืžืกื“ ื”ื ืชื•ื ื™ื SQL ะทะฐะฟั€ะพั. ืื ื™ ืจืง ืืฆื™ื’ ืžื•ืฉื’ื™ ืžืกื“ ื ืชื•ื ื™ื ื‘ืกื™ืกื™ื™ืื›ืš ืฉื‘ืกื•ืฃ ื”ืžืืžืจ ื™ืฉ ืœืš ืžื•ืฉื’ ืžื” ืงื•ืจื” ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข.

ืžื›ื™ื•ื•ืŸ ืฉืžื“ื•ื‘ืจ ื‘ืžืืžืจ ืืจื•ืš ื•ื˜ื›ื ื™ ื”ื›ื•ืœืœ ื”ืจื‘ื” ืืœื’ื•ืจื™ืชืžื™ื ื•ืžื‘ื ื™ ื ืชื•ื ื™ื, ืงื—ื• ืืช ื”ื–ืžืŸ ืฉืœื›ื ืœืงืจื•ื ืื•ืชื•. ื›ืžื” ืžื•ืฉื’ื™ื ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืงืฉื™ื ืœื”ื‘ื ื”; ืืชื” ื™ื›ื•ืœ ืœื“ืœื’ ืขืœื™ื”ื ื•ืขื“ื™ื™ืŸ ืœืงื‘ืœ ืืช ื”ืจืขื™ื•ืŸ ื”ื›ืœืœื™.

ืœื‘ืขืœื™ ื™ื“ืข ืžื‘ื™ื ื›ื, ืžืืžืจ ื–ื” ืžื—ื•ืœืง ืœ-3 ื—ืœืงื™ื:

  • ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ืจื›ื™ื‘ื™ ืžืกื“ ื ืชื•ื ื™ื ื‘ืจืžื” ื ืžื•ื›ื” ื•ื‘ืจืžื” ื’ื‘ื•ื”ื”
  • ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ืชื”ืœื™ืš ืื•ืคื˜ื™ืžื™ื–ืฆื™ื™ืช ื”ืฉืื™ืœืชื•ืช
  • ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื ื™ื”ื•ืœ ืขืกืงืื•ืช ื•ืžืื’ืจ ืžืื’ืจ

ื‘ื—ื–ืจื” ืœื‘ืกื™ืก

ืœืคื ื™ ืฉื ื™ื (ื‘ื’ืœืงืกื™ื” ืจื—ื•ืงื”, ืจื—ื•ืงื”...), ื”ืžืคืชื—ื™ื ื”ื™ื• ืฆืจื™ื›ื™ื ืœื“ืขืช ื‘ื“ื™ื•ืง ืืช ืžืกืคืจ ื”ืคืขื•ืœื•ืช ืฉื”ื ืžืงื•ื“ื“ื™ื. ื”ื ื”ื›ื™ืจื• ื‘ืขืœ ืคื” ืืช ื”ืืœื’ื•ืจื™ืชืžื™ื ื•ืžื‘ื ื™ ื”ื ืชื•ื ื™ื ืฉืœื”ื ืžื›ื™ื•ื•ืŸ ืฉื”ื ืœื ื™ื›ืœื• ืœื”ืจืฉื•ืช ืœืขืฆืžื ืœื‘ื–ื‘ื– ืืช ื”ืžืขื‘ื“ ื•ื”ื–ื™ื›ืจื•ืŸ ืฉืœ ื”ืžื—ืฉื‘ื™ื ื”ืื™ื˜ื™ื™ื ืฉืœื”ื.

ื‘ื—ืœืง ื–ื”, ืื–ื›ื™ืจ ืœื›ื ื›ืžื” ืžื”ืžื•ืฉื’ื™ื ื”ืœืœื• ืฉื›ืŸ ื”ื ื—ื™ื•ื ื™ื™ื ืœื”ื‘ื ืช ืžืกื“ ื”ื ืชื•ื ื™ื. ืืฆื™ื’ ื’ื ืืช ื”ืžื•ืฉื’ ืื™ื ื“ืงืก ืžืกื“ ื ืชื•ื ื™ื.

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) ื™ืขืœื” ืœืš ืคืขื•ืœื” ืื—ืช
  • ื”ืืœื’ื•ืจื™ืชื O(log(n)) ื™ืขืœื” ืœืš 7 ืคืขื•ืœื•ืช
  • ืืœื’ื•ืจื™ืชื O(n) ื™ืขืœื” ืœืš 2 ืคืขื•ืœื•ืช
  • ื”ืืœื’ื•ืจื™ืชื O(n*log(n)) ื™ืขืœื” ืœื›ื 14 ืคืขื•ืœื•ืช
  • ืืœื’ื•ืจื™ืชื O(n2) ื™ืขืœื” ืœืš 4 ืคืขื•ืœื•ืช

ื”ื”ื‘ื“ืœ ื‘ื™ืŸ O(1) ืœ-O(n2) ื ืจืื” ื’ื“ื•ืœ (4 ืžื™ืœื™ื•ืŸ ืคืขื•ืœื•ืช) ืื‘ืœ ืชืื‘ื“ ืžืงืกื™ืžื•ื 2 ms, ืจืง ื–ืžืŸ ืœืžืฆืžืฅ ืืช ื”ืขื™ื ื™ื™ื. ืื›ืŸ, ืžืขื‘ื“ื™ื ืžื•ื“ืจื ื™ื™ื ื™ื›ื•ืœื™ื ืœืขื‘ื“ ืžืื•ืช ืžื™ืœื™ื•ื ื™ ืคืขื•ืœื•ืช ื‘ืฉื ื™ื™ื”. ื–ื• ื”ืกื™ื‘ื” ืฉื‘ื™ืฆื•ืขื™ื ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืื™ื ื ืžื”ื•ื•ื™ื ื‘ืขื™ื” ื‘ืคืจื•ื™ืงื˜ื™ IT ืจื‘ื™ื.

ื›ืคื™ ืฉืืžืจืชื™, ืขื“ื™ื™ืŸ ื—ืฉื•ื‘ ืœื”ื›ื™ืจ ืืช ื”ืžื•ืฉื’ ื”ื–ื” ื›ืฉืขื•ื‘ื“ื™ื ืขื ื›ืžื•ื™ื•ืช ืื“ื™ืจื•ืช ืฉืœ ื ืชื•ื ื™ื. ืื ื”ืคืขื ื”ืืœื’ื•ืจื™ืชื ืฆืจื™ืš ืœืขื‘ื“ 1 ืืœืžื ื˜ื™ื (ื•ื–ื” ืœื ื›ืœ ื›ืš ื”ืจื‘ื” ืขื‘ื•ืจ ืžืกื“ ื ืชื•ื ื™ื):

  • ืืœื’ื•ืจื™ืชื O(1) ื™ืขืœื” ืœืš ืคืขื•ืœื” ืื—ืช
  • ื”ืืœื’ื•ืจื™ืชื O(log(n)) ื™ืขืœื” ืœืš 14 ืคืขื•ืœื•ืช
  • ืืœื’ื•ืจื™ืชื O(n) ื™ืขืœื” ืœืš 1 ืคืขื•ืœื•ืช
  • ื”ืืœื’ื•ืจื™ืชื O(n*log(n)) ื™ืขืœื” ืœืš 14 ืคืขื•ืœื•ืช
  • ืืœื’ื•ืจื™ืชื O(n2) ื™ืขืœื” ืœืš 1 ืคืขื•ืœื•ืช

ืœื ืขืฉื™ืชื™ ืืช ื”ื—ืฉื‘ื•ืŸ, ืื‘ืœ ื”ื™ื™ืชื™ ืื•ืžืจ ืฉืขื ื”ืืœื’ื•ืจื™ืชื O(n2) ื™ืฉ ืœืš ื–ืžืŸ ืœืฉืชื•ืช ืงืคื” (ืืคื™ืœื• ืฉื ื™ื™ื!). ืื ืชื•ืกื™ืฃ ืขื•ื“ 0 ืœื ืคื— ื”ื ืชื•ื ื™ื, ื™ื”ื™ื” ืœืš ื–ืžืŸ ืœื ืžื ื.

ื‘ื•ืื• ื ืขืžื™ืง ื™ื•ืชืจ

ืœืžื™ื“ืข ืฉืœืš:

  • ื‘ื“ื™ืงืช ื˜ื‘ืœืช hash ื˜ื•ื‘ื” ืžื•ืฆืืช ืืœืžื ื˜ ื‘-O(1).
  • ื—ื™ืคื•ืฉ ื‘ืขืฅ ืžืื•ื–ืŸ ืžืกืคืง ืชื•ืฆืื•ืช ื‘-O(log(n)).
  • ื—ื™ืคื•ืฉ ื‘ืžืขืจืš ืžื™ื™ืฆืจ ืชื•ืฆืื•ืช ื‘-O(n).
  • ืœืืœื’ื•ืจื™ืชืžื™ ื”ืžื™ื•ืŸ ื”ื˜ื•ื‘ื™ื ื‘ื™ื•ืชืจ ื™ืฉ ืžื•ืจื›ื‘ื•ืช O(n*log(n)).
  • ืœืืœื’ื•ืจื™ืชื ืžื™ื•ืŸ ื’ืจื•ืข ื™ืฉ ืžื•ืจื›ื‘ื•ืช O(n2).

ื”ืขืจื”: ื‘ื—ืœืงื™ื ื”ื‘ืื™ื ื ืจืื” ืืœื’ื•ืจื™ืชืžื™ื ื•ืžื‘ื ื™ ื ืชื•ื ื™ื ืืœื•.

ื™ืฉื ื ืžืกืคืจ ืกื•ื’ื™ื ืฉืœ ืžื•ืจื›ื‘ื•ืช ื–ืžืŸ ืืœื’ื•ืจื™ืชื:

  • ืชืจื—ื™ืฉ ืžืงืจื” ืžืžื•ืฆืข
  • ื”ืชืจื—ื™ืฉ ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ
  • ื•ืชืจื—ื™ืฉ ื”ื’ืจื•ืข ื‘ื™ื•ืชืจ

ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ื”ื™ื ืœืจื•ื‘ ื”ืชืจื—ื™ืฉ ื”ื’ืจื•ืข ื‘ื™ื•ืชืจ.

ื“ื™ื‘ืจืชื™ ืจืง ืขืœ ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ืฉืœ ื”ืืœื’ื•ืจื™ืชื, ืื‘ืœ ื”ืžื•ืจื›ื‘ื•ืช ื—ืœื” ื’ื ืขืœ:

  • ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืฉืœ ื”ืืœื’ื•ืจื™ืชื
  • ืืœื’ื•ืจื™ืชื ืฆืจื™ื›ืช ืงืœื˜/ืคืœื˜ ื“ื™ืกืง

ื›ืžื•ื‘ืŸ, ื™ืฉื ื ืกื™ื‘ื•ื›ื™ื ื’ืจื•ืขื™ื ืž-n2, ืœืžืฉืœ:

  • n4: ื–ื” ื ื•ืจื! ืœื—ืœืง ืžื”ืืœื’ื•ืจื™ืชืžื™ื ืฉื”ื•ื–ื›ืจื• ื™ืฉ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ื–ื•.
  • 3n: ื–ื” ืืคื™ืœื• ื™ื•ืชืจ ื’ืจื•ืข! ืœืื—ื“ ื”ืืœื’ื•ืจื™ืชืžื™ื ืฉื ืจืื” ื‘ืืžืฆืข ืžืืžืจ ื–ื” ื™ืฉ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ื–ื• (ื•ื”ื•ื ืžืฉืžืฉ ืœืžืขืฉื” ื‘ืžืื’ืจื™ ืžื™ื“ืข ืจื‘ื™ื).
  • ืคืงื˜ื•ืจื™ n: ืœืขื•ืœื ืœื ืชืงื‘ืœ ืืช ื”ืชื•ืฆืื•ืช ืฉืœืš ืืคื™ืœื• ืขื ื›ืžื•ืช ืงื˜ื ื” ืฉืœ ื ืชื•ื ื™ื.
  • nn: ืื ืืชื” ื ืชืงืœ ื‘ืžื•ืจื›ื‘ื•ืช ื”ื–ื•, ืืชื” ืฆืจื™ืš ืœืฉืื•ืœ ืืช ืขืฆืžืš ืื ื–ื” ื‘ืืžืช ืชื—ื•ื ื”ืคืขื™ืœื•ืช ืฉืœืš...

ื”ืขืจื”: ืœื ื ืชืชื™ ืœืš ืืช ื”ื”ื’ื“ืจื” ื”ืืžื™ืชื™ืช ืฉืœ ื™ื™ืขื•ื“ ื”-O ื”ื’ื“ื•ืœ, ืจืง ืจืขื™ื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืžืืžืจ ื–ื” ื‘ ื•ื™ืงื™ืคื“ื™ื” ืœื”ื’ื“ืจื” ื”ืืžื™ืชื™ืช (ืืกื™ืžืคื˜ื•ื˜ื™ืช).

ืžื™ื–ื•ื’ ืžื™ื•ืŸ

ืžื” ืขื•ืฉื™ื ื›ืฉืฆืจื™ืš ืœืžื™ื™ืŸ ืื•ืกืฃ? ืžื”? ืืชื” ืงื•ืจื ืœืคื•ื ืงืฆื™ื” sort()... ืื•ืงื™, ืชืฉื•ื‘ื” ื˜ื•ื‘ื”... ืื‘ืœ ืขื‘ื•ืจ ืžืกื“ ื ืชื•ื ื™ื, ืืชื” ื—ื™ื™ื‘ ืœื”ื‘ื™ืŸ ืื™ืš ืคื•ื ืงืฆื™ื™ืช sort() ื–ื• ืคื•ืขืœืช.

ื™ืฉื ื ืžืกืคืจ ืืœื’ื•ืจื™ืชืžื™ ืžื™ื•ืŸ ื˜ื•ื‘ื™ื, ืื– ืืชืžืงื“ ื‘ื“ื‘ืจื™ื ื”ื—ืฉื•ื‘ื™ื ื‘ื™ื•ืชืจ: ืžื™ื–ื•ื’ ืžื™ื•ืŸ. ืื•ืœื™ ืื™ื ืš ืžื‘ื™ืŸ ืžื“ื•ืข ืžื™ื•ืŸ ื ืชื•ื ื™ื ืฉื™ืžื•ืฉื™ ื›ืขืช, ืืš ืขืœื™ืš ืœืื—ืจ ื”ื—ืœืง ืฉืœ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื™ืช ื”ืฉืื™ืœืชื•ืช. ื™ืชืจื” ืžื›ืš, ื”ื‘ื ืช ืžื™ื–ื•ื’ ื”ืžื™ื–ื•ื’ ืชืขื–ื•ืจ ืœื ื• ืžืื•ื—ืจ ื™ื•ืชืจ ืœื”ื‘ื™ืŸ ืืช ืคืขื•ืœืช ื”ื”ืฆื˜ืจืคื•ืช ื”ื ืคื•ืฆื” ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉื ืงืจืืช ืœืžื–ื’ ืœื”ืฆื˜ืจืฃ (ืื™ื’ื•ื“ ืžื™ื–ื•ื’).

ืœึฐืžึทื–ึตื’

ื›ืžื• ืืœื’ื•ืจื™ืชืžื™ื ืฉื™ืžื•ืฉื™ื™ื ืจื‘ื™ื, ืžื™ื•ืŸ ืžื™ื–ื•ื’ ืžืกืชืžืš ืขืœ ื˜ืจื™ืง: ืฉื™ืœื•ื‘ ืฉืœ 2 ืžืขืจื›ื™ื ืžืžื•ื™ื ื™ื ื‘ื’ื•ื“ืœ N/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 ืคืขื•ืœื•ืช

ืžื›ื™ื•ื•ืŸ ืฉื™ืฉื ื ืฉืœื‘ื™ื ื‘ื™ื•ืžืŸ (N), ืขืœื•ืช ื›ื•ืœืœืช N * log(N) ืคืขื•ืœื•ืช.

ื™ืชืจื•ื ื•ืช ืžื™ื•ืŸ ืžื™ื–ื•ื’

ืœืžื” ื”ืืœื’ื•ืจื™ืชื ื”ื–ื” ื›ืœ ื›ืš ื—ื–ืง?

ื›ื™:

  • ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืื•ืชื• ื›ื“ื™ ืœื”ืงื˜ื™ืŸ ืืช ื˜ื‘ื™ืขืช ื”ืจื’ืœ ืฉืœ ื”ื–ื™ื›ืจื•ืŸ ื›ืš ืฉืœื ืชื™ืฆื•ืจ ืžืขืจื›ื™ื ื—ื“ืฉื™ื ืืœื ืชืฉื ื” ื™ืฉื™ืจื•ืช ืืช ืžืขืจืš ื”ืงืœื˜.

ื”ืขืจื”: ืกื•ื’ ื–ื” ืฉืœ ืืœื’ื•ืจื™ืชื ื ืงืจื in-ืžืงื•ื (ืžื™ื•ืŸ ืœืœื ื–ื™ื›ืจื•ืŸ ื ื•ืกืฃ).

  • ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ื–ื” ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืฉื˜ื— ื“ื™ืกืง ื•ื›ืžื•ืช ืงื˜ื ื” ืฉืœ ื–ื™ื›ืจื•ืŸ ื‘ื•-ื–ืžื ื™ืช ืžื‘ืœื™ ืœื”ื›ื ื™ืก ืชืงื•ืจื” ืžืฉืžืขื•ืชื™ืช ืœื“ื™ืกืง I/O. ื”ืจืขื™ื•ืŸ ื”ื•ื ืœื˜ืขื•ืŸ ืœื–ื™ื›ืจื•ืŸ ืจืง ืืช ื”ื—ืœืงื™ื ืฉื ืžืฆืื™ื ื›ืขืช ื‘ืขื™ื‘ื•ื“. ื–ื” ื—ืฉื•ื‘ ื›ืืฉืจ ืืชื” ืฆืจื™ืš ืœืžื™ื™ืŸ ื˜ื‘ืœื” ืžืจื•ื‘ื” ื’ื™ื’ื” ืขื ืžืื’ืจ ื–ื™ื›ืจื•ืŸ ืฉืœ 100 ืžื’ื”-ื‘ื™ื™ื˜ ื‘ืœื‘ื“.

ื”ืขืจื”: ืกื•ื’ ื–ื” ืฉืœ ืืœื’ื•ืจื™ืชื ื ืงืจื ืžื™ื•ืŸ ื—ื™ืฆื•ื ื™.

  • ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืื•ืชื• ื›ืš ืฉื™ืคืขืœ ื‘ืžืกืคืจ ืชื”ืœื™ื›ื™ื/ืฉืจืฉื•ืจื™ื/ืฉืจืชื™ื.

ืœื“ื•ื’ืžื”, ืžื™ื•ืŸ ืžื™ื–ื•ื’ ืžื‘ื•ื–ืจ ื”ื•ื ืื—ื“ ืžืžืจื›ื™ื‘ื™ ื”ืžืคืชื— Hadoop (ืฉื–ื” ืžื‘ื ื” ื‘ื‘ื™ื’ ื“ืื˜ื”).

  • ื”ืืœื’ื•ืจื™ืชื ื”ื–ื” ื™ื›ื•ืœ ืœื”ืคื•ืš ืขื•ืคืจืช ืœื–ื”ื‘ (ื‘ืืžืช!).

ืืœื’ื•ืจื™ืชื ืžื™ื•ืŸ ื–ื” ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื‘ืจื•ื‘ ืžืกื“ื™ ื”ื ืชื•ื ื™ื (ืื ืœื ื›ื•ืœื), ืืš ื”ื•ื ืื™ื ื• ื”ื™ื—ื™ื“. ืื ืืชื” ืจื•ืฆื” ืœื“ืขืช ื™ื•ืชืจ, ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื–ื” ืขื‘ื•ื“ืช ืžื—ืงืจ, ื”ื“ืŸ ื‘ื™ืชืจื•ื ื•ืช ื•ื‘ื—ืกืจื•ื ื•ืช ืฉืœ ืืœื’ื•ืจื™ืชืžื™ื ื ืคื•ืฆื™ื ืœืžื™ื•ืŸ ืžืกื“ื™ ื ืชื•ื ื™ื.

ื˜ื‘ืœืช ืžืขืจืš, ืขืฅ ื•- Hash

ื›ืขืช, ืœืื—ืจ ืฉื”ื‘ื ื• ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ื•ื”ืžื™ื•ืŸ, ืขืœื™ ืœืกืคืจ ืœื›ื ืขืœ 3 ืžื‘ื ื™ ื ืชื•ื ื™ื. ื–ื” ื—ืฉื•ื‘ ื›ื™ ื”ื ื”ื ื”ื‘ืกื™ืก ืœืžืื’ืจื™ ืžื™ื“ืข ืžื•ื“ืจื ื™ื™ื. ืืฆื™ื’ ื’ื ืืช ื”ืžื•ืฉื’ ืื™ื ื“ืงืก ืžืกื“ ื ืชื•ื ื™ื.

ะœะฐััะธะฒ

ืžืขืจืš ื“ื• ืžื™ืžื“ื™ ื”ื•ื ืžื‘ื ื” ื”ื ืชื•ื ื™ื ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ. ืืคืฉืจ ืœื—ืฉื•ื‘ ืขืœ ื˜ื‘ืœื” ื›ืžืขืจืš. ืœื“ื•ื’ืžื”:

ื›ื™ืฆื“ ืคื•ืขืœื™ื ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื (ื—ืœืง 1)

ืžืขืจืš ื“ื• ืžื™ืžื“ื™ ื–ื” ื”ื•ื ื˜ื‘ืœื” ืขื ืฉื•ืจื•ืช ื•ืขืžื•ื“ื•ืช:

  • ื›ืœ ืฉื•ืจื” ืžื™ื™ืฆื’ืช ื™ืฉื•ืช
  • ืขืžื•ื“ื•ืช ืžืื—ืกื ื•ืช ืžืืคื™ื™ื ื™ื ื”ืžืชืืจื™ื ืืช ื”ื™ืฉื•ืช.
  • ื›ืœ ืขืžื•ื“ื” ืžืื—ืกื ืช ื ืชื•ื ื™ื ืžืกื•ื’ ืžืกื•ื™ื (ืžืกืคืจ ืฉืœื, ืžื—ืจื•ื–ืช, ืชืืจื™ืš...).

ื–ื” ื ื•ื— ืœืื—ืกื•ืŸ ื•ื”ืฆื’ื” ืฉืœ ื ืชื•ื ื™ื, ืขื ื–ืืช, ื›ืืฉืจ ืืชื” ืฆืจื™ืš ืœืžืฆื•ื ืขืจืš ืžืกื•ื™ื, ื–ื” ืœื ืžืชืื™ื.

ืœื“ื•ื’ืžื”, ืื ืชืจืฆื” ืœืžืฆื•ื ืืช ื›ืœ ื”ื‘ื—ื•ืจื™ื ืฉืขื•ื‘ื“ื™ื ื‘ื‘ืจื™ื˜ื ื™ื”, ืชืฆื˜ืจืš ืœื”ืกืชื›ืœ ืขืœ ื›ืœ ืฉื•ืจื” ื›ื“ื™ ืœืงื‘ื•ืข ืื ื”ืฉื•ืจื” ื”ื–ื• ืฉื™ื™ื›ืช ืœื‘ืจื™ื˜ื ื™ื”. ื–ื” ื™ืขืœื” ืœืš 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, ืฆื•ืžืช ืงื™ื™ื. ืื ื™ ืžื—ื–ื™ืจ ืืช ืžื–ื”ื” ื”ืฉื•ืจื” ื‘ืชื•ืš ื”ืฆื•ืžืช (ืœื ืžื•ืคื™ืข ื‘ืชืžื•ื ื”) ื•ืžื—ืคืฉ ื‘ื˜ื‘ืœื” ืืช ืžื–ื”ื” ื”ืฉื•ืจื” ื”ื ืชื•ืŸ.
  • ื”ื›ืจืช ืžื–ื”ื” ื”ืฉื•ืจื” ืžืืคืฉืจืช ืœื™ ืœื“ืขืช ื‘ื“ื™ื•ืง ื”ื™ื›ืŸ ื”ื ืชื•ื ื™ื ื ืžืฆืื™ื ื‘ื˜ื‘ืœื”, ื›ืš ืฉืื•ื›ืœ ืœืื—ื–ืจ ืื•ืชื ื‘ืื•ืคืŸ ืžื™ื™ื“ื™.

ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ืฉื ื™ ื”ื—ื™ืคื•ืฉื™ื ื™ืขืœื• ืœื™ ื‘ืžืกืคืจ ื”ืจืžื•ืช ื‘ืชื•ืš ื”ืขืฅ. ืื ืืชื” ืงื•ืจื ืืช ื”ื—ืœืง ืขืœ ืžื™ื•ืŸ ืžื™ื–ื•ื’ ื‘ืงืคื™ื“ื”, ืืชื” ืืžื•ืจ ืœืจืื•ืช ืฉื™ืฉ ืจืžื•ืช log(N). ืžืชื‘ืจืจ, ื™ื•ืžืŸ ืขืœื•ื™ื•ืช ื—ื™ืคื•ืฉ (N), ืœื ืจืข!

ื‘ื•ืื• ื ื—ื–ื•ืจ ืœื‘ืขื™ื” ืฉืœื ื•

ืื‘ืœ ื–ื” ืžืื•ื“ ืžื•ืคืฉื˜, ืื– ื‘ื•ืื• ื ื—ื–ื•ืจ ืœื‘ืขื™ื” ืฉืœื ื•. ื‘ืžืงื•ื ืžืกืคืจ ืฉืœื ืคืฉื•ื˜, ื“ืžื™ื™ื ื• ืžื—ืจื•ื–ืช ืฉืžื™ื™ืฆื’ืช ืืช ื”ืžื“ื™ื ื” ืฉืœ ืžื™ืฉื”ื• ื‘ื˜ื‘ืœื” ื”ืงื•ื“ืžืช. ื ื ื™ื— ืฉื™ืฉ ืœืš ืขืฅ ื”ืžื›ื™ืœ ืืช ื”ืฉื“ื” "ืžื“ื™ื ื”" (ืขืžื•ื“ื” 3) ืฉืœ ื”ื˜ื‘ืœื”:

  • ืื ืืชื” ืจื•ืฆื” ืœื“ืขืช ืžื™ ืขื•ื‘ื“ ื‘ื‘ืจื™ื˜ื ื™ื”
  • ืืชื” ืžืกืชื›ืœ ืขืœ ื”ืขืฅ ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ืฆื•ืžืช ืฉืžื™ื™ืฆื’ ืืช ื‘ืจื™ื˜ื ื™ื” ื”ื’ื“ื•ืœื”
  • ื‘ืชื•ืš "UKnode" ืชืžืฆื ืืช ื”ืžื™ืงื•ื ืฉืœ ืจืฉื•ืžื•ืช ืขื•ื‘ื“ื™ื ื‘ื‘ืจื™ื˜ื ื™ื”.

ื”ื—ื™ืคื•ืฉ ื”ื–ื” ื™ืขืœื” ืคืขื•ืœื•ืช log(N) ื‘ืžืงื•ื N ืคืขื•ืœื•ืช ืื ืชืฉืชืžืฉ ื‘ืžืขืจืš ื™ืฉื™ืจื•ืช. ืžื” ืฉื”ืฆื’ืช ื–ื” ืขืชื” ื”ื™ื” ืื™ื ื“ืงืก ืžืกื“ ื ืชื•ื ื™ื.

ืืชื” ื™ื›ื•ืœ ืœื‘ื ื•ืช ืขืฅ ืื™ื ื“ืงืก ืœื›ืœ ืงื‘ื•ืฆืช ืฉื“ื•ืช (ืžื—ืจื•ื–ืช, ืžืกืคืจ, 2 ืฉื•ืจื•ืช, ืžืกืคืจ ื•ืžื—ืจื•ื–ืช, ืชืืจื™ืš...) ื›ืœ ืขื•ื“ ื™ืฉ ืœืš ืคื•ื ืงืฆื™ื” ืœื”ืฉื•ื•ืืช ืžืคืชื—ื•ืช (ื›ืœื•ืžืจ ืงื‘ื•ืฆื•ืช ืฉื“ื•ืช) ื›ืš ืฉืชื•ื›ืœ ืœื”ื’ื“ื™ืจ ืกื“ืจ ื‘ื™ืŸ ื”ืžืคืชื—ื•ืช (ื•ื–ื” ื”ืžืงืจื” ืขื‘ื•ืจ ื›ืœ ืกื•ื’ ื‘ืกื™ืกื™ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื).

B+TreeIndex

ืœืžืจื•ืช ืฉืขืฅ ื–ื” ืขื•ื‘ื“ ื”ื™ื˜ื‘ ืœืงื‘ืœืช ืขืจืš ืกืคืฆื™ืคื™, ื™ืฉ ื‘ืขื™ื” ื’ื“ื•ืœื” ื›ืืฉืจ ืืชื” ืฆืจื™ืš ืœืงื‘ืœ ืžืกืคืจ ืืœืžื ื˜ื™ื ื‘ื™ืŸ ืฉื ื™ ืขืจื›ื™ื. ื–ื” ื™ืขืœื” O(N) ื›ื™ ืชืฆื˜ืจืš ืœื”ืกืชื›ืœ ืขืœ ื›ืœ ืฆื•ืžืช ื‘ืขืฅ ื•ืœื‘ื“ื•ืง ืื ื”ื•ื ื‘ื™ืŸ ืฉื ื™ ื”ืขืจื›ื™ื ื”ืœืœื• (ืœืžืฉืœ ืขื ืžืขื‘ืจ ืžืกื•ื“ืจ ืฉืœ ื”ืขืฅ). ื™ืชืจ ืขืœ ื›ืŸ, ืคืขื•ืœื” ื–ื• ืื™ื ื” ื™ื“ื™ื“ื•ืชื™ืช ืœ-Disk I/O ื›ื™ื•ื•ืŸ ืฉืขืœื™ืš ืœืงืจื•ื ืืช ื›ืœ ื”ืขืฅ. ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืžืฆื•ื ื“ืจืš ืœื‘ื™ืฆื•ืข ื™ืขื™ืœ ื‘ืงืฉืช ื˜ื•ื•ื—. ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, ืžืกื“ื™ ื ืชื•ื ื™ื ืžื•ื“ืจื ื™ื™ื ืžืฉืชืžืฉื™ื ื‘ื’ืจืกื” ืฉื•ื ื” ืฉืœ ื”ืขืฅ ื”ืงื•ื“ื ื‘ืฉื B+Tree. ื‘ืขืฅ B+Tree:

  • ืจืง ื”ืฆืžืชื™ื ื”ื ืžื•ื›ื™ื ื‘ื™ื•ืชืจ (ืขืœื™ื) ืื—ืกื•ืŸ ืžื™ื“ืข (ืžื™ืงื•ื ื”ืฉื•ืจื•ืช ื‘ื˜ื‘ืœื” ื”ืงืฉื•ืจื”)
  • ืฉืืจ ื”ืฆืžืชื™ื ื ืžืฆืื™ื ื›ืืŸ ืœื ื™ืชื•ื‘ ืœืฆื•ืžืช ื”ื ื›ื•ืŸ ื‘ืžื”ืœืš ื”ื—ื™ืคื•ืฉ.

ื›ื™ืฆื“ ืคื•ืขืœื™ื ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื (ื—ืœืง 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+Tree ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื–ืžื™ืŸ ื•ืžืื•ื–ืŸ. ืœืžืจื‘ื” ื”ืžื–ืœ, ื–ื” ืืคืฉืจื™ ืขื ืคืขื•ืœื•ืช ืžื—ื™ืงื” ื•ื”ื•ืกืคื” ื—ื›ืžื•ืช. ืื‘ืœ ื–ื” ื›ืจื•ืš ื‘ืขืœื•ืช: ื”ื•ืกืคื•ืช ื•ืžื—ื™ืงื•ืช ื‘ืขืฅ B+ ืขื•ืœื•ืช O(log(N)). ื–ื• ื”ืกื™ื‘ื” ืฉื—ืœืง ืžื›ื ืฉืžืขื• ืืช ื–ื” ืฉื™ืžื•ืฉ ื‘ื™ื•ืชืจ ืžื“ื™ ืื™ื ื“ืงืกื™ื ืื™ื ื• ืจืขื™ื•ืŸ ื˜ื•ื‘. ื‘ึผึถืึฑืžึถืช, ืืชื” ืžืื˜ ื”ื›ื ืกื”/ืขื“ื›ื•ืŸ/ืžื—ื™ืงื” ืžื”ื™ืจื” ืฉืœ ืฉื•ืจื” ื‘ื˜ื‘ืœื”ื›ื™ ืžืกื“ ื”ื ืชื•ื ื™ื ืฆืจื™ืš ืœืขื“ื›ืŸ ืืช ื”ืื™ื ื“ืงืกื™ื ืฉืœ ื”ื˜ื‘ืœื” ื‘ืืžืฆืขื•ืช ืคืขื•ืœืช O(log(N)) ื™ืงืจื” ืขื‘ื•ืจ ื›ืœ ืื™ื ื“ืงืก. ื™ืชืจ ืขืœ ื›ืŸ, ื”ื•ืกืคืช ืื™ื ื“ืงืกื™ื ืคื™ืจื•ืฉื” ืขื•ืžืก ืขื‘ื•ื“ื” ื ื•ืกืฃ ืขื‘ื•ืจ ืžื ื”ืœ ืขืกืงืื•ืช (ื™ืชื•ืืจ ื‘ืกื•ืฃ ื”ืžืืžืจ).

ืœืคืจื˜ื™ื ื ื•ืกืคื™ื, ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืืช ื”ืžืืžืจ ื‘ื•ื•ื™ืงื™ืคื“ื™ื” ืขืœ B+ืขึตืฅ. ืื ืืชื” ืจื•ืฆื” ื“ื•ื’ืžื” ืœื™ื™ืฉื•ื B+Tree ื‘ืžืกื“ ื ืชื•ื ื™ื, ืชืกืชื›ืœ ืžืืžืจ ื–ื” ะธ ืžืืžืจ ื–ื” ืžืžืคืชื— MySQL ืžื•ื‘ื™ืœ. ืฉื ื™ื”ื ืžืชืžืงื“ื™ื ื‘ืื•ืคืŸ ืฉื‘ื• InnoDB (ืžื ื•ืข MySQL) ืžื˜ืคืœ ื‘ืื™ื ื“ืงืกื™ื.

ื”ืขืจื”: ืงื•ืจื ืืžืจ ืœื™ ืฉื‘ืฉืœ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ืจืžื” ื ืžื•ื›ื”, ืขืฅ B+ ืฆืจื™ืš ืœื”ื™ื•ืช ืžืื•ื–ืŸ ืœื—ืœื•ื˜ื™ืŸ.

ื˜ื‘ืœืช ื’ื™ื‘ื•ื‘

ืžื‘ื ื” ื”ื ืชื•ื ื™ื ื”ื—ืฉื•ื‘ ื”ืื—ืจื•ืŸ ืฉืœื ื• ื”ื•ื ื˜ื‘ืœืช ื”ื’ื™ื‘ื•ื‘. ื–ื” ืžืื•ื“ ืฉื™ืžื•ืฉื™ ื›ืืฉืจ ืืชื” ืจื•ืฆื” ืœื—ืคืฉ ื‘ืžื”ื™ืจื•ืช ืขืจื›ื™ื. ื™ืชืจื” ืžื›ืš, ื”ื‘ื ืช ื˜ื‘ืœืช ื’ื™ื‘ื•ื‘ ืชืขื–ื•ืจ ืœื ื• ืžืื•ื—ืจ ื™ื•ืชืจ ืœื”ื‘ื™ืŸ ืคืขื•ืœืช ื”ืฆื˜ืจืคื•ืช ื ืคื•ืฆื” ืœืžืกื“ ื ืชื•ื ื™ื ื”ื ืงืจืืช ื—ื™ื‘ื•ืจ hash ( hash ืœื”ืฆื˜ืจืฃ). ืžื‘ื ื” ื”ื ืชื•ื ื™ื ื”ื–ื” ืžืฉืžืฉ ื’ื ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ื›ื“ื™ ืœืื—ืกืŸ ื›ืžื” ื“ื‘ืจื™ื ืคื ื™ืžื™ื™ื (ืœืžืฉืœ. ืฉื•ืœื—ืŸ ืžื ืขื•ืœ ืื• ื‘ืจื™ื›ืช ื—ื™ืฅ, ื ืจืื” ืืช ืฉื ื™ ื”ืžื•ืฉื’ื™ื ื”ืœืœื• ืžืื•ื—ืจ ื™ื•ืชืจ).

ื˜ื‘ืœืช hash ื”ื™ื ืžื‘ื ื” ื ืชื•ื ื™ื ืฉืžื•ืฆื ื‘ืžื”ื™ืจื•ืช ืืœืžื ื˜ ืœืคื™ ื”ืžืคืชื— ืฉืœื•. ื›ื“ื™ ืœื‘ื ื•ืช ื˜ื‘ืœืช ื’ื™ื‘ื•ื‘ ืืชื” ืฆืจื™ืš ืœื”ื’ื“ื™ืจ:

  • ะบะปัŽั‡ ืขื‘ื•ืจ ื”ืืœืžื ื˜ื™ื ืฉืœืš
  • ืคื•ื ืงืฆื™ื™ืช hash ืขื‘ื•ืจ ืžืคืชื—ื•ืช. ื”ื’ื™ื‘ื•ื‘ื™ื ื”ืžื—ื•ืฉื‘ื™ื ืฉืœ ื”ืžืคืชื— ื ื•ืชื ื™ื ืืช ืžื™ืงื•ื ื”ืืœืžื ื˜ื™ื (ื ืงืจื ืงื˜ืขื™ื ).
  • ืคื•ื ืงืฆื™ื” ืœื”ืฉื•ื•ืืช ืžืคืชื—ื•ืช. ืœืื—ืจ ืฉืžืฆืืช ืืช ื”ืคืœื— ื”ื ื›ื•ืŸ, ืขืœื™ืš ืœืžืฆื•ื ืืช ื”ืืœืžื ื˜ ืฉืืชื” ืžื—ืคืฉ ื‘ืชื•ืš ื”ืคืœื— ื‘ืืžืฆืขื•ืช ื”ืฉื•ื•ืื” ื–ื•.

ื“ื•ื’ืžื” ืคืฉื•ื˜ื”

ื ื™ืงื— ื“ื•ื’ืžื” ื‘ืจื•ืจื”:

ื›ื™ืฆื“ ืคื•ืขืœื™ื ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื (ื—ืœืง 1)

ื˜ื‘ืœืช ื”ื’ื™ื‘ื•ื‘ ื”ื–ื• ื›ื•ืœืœืช 10 ืžืงื˜ืขื™ื. ื‘ื’ืœืœ ืฉืื ื™ ืขืฆืœืŸ, ืฆื™ืœืžืชื™ ืจืง 5 ืงื˜ืขื™ื, ืื‘ืœ ืื ื™ ื™ื•ื“ืข ืฉืืชื” ื—ื›ื, ืื– ืื ื™ ืืชืŸ ืœืš ืœืฆืœื ืืช 5 ื”ืื—ืจื™ื ืœื‘ื“. ื”ืฉืชืžืฉืชื™ ื‘ืคื•ื ืงืฆื™ื™ืช Hash modulo 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 ืคืขื•ืœื•ืช.

ืคื•ื ืงืฆื™ื™ืช Hash ื˜ื•ื‘ื”

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื‘ื”ืชืื ืœืชืžื•ืจื” ืฉืืชื” ืžื—ืคืฉ, ื”ืขืœื•ืช ืื™ื ื” ื–ื”ื”!

ืื ืขื›ืฉื™ื• ืื ื™ ืžืฉื ื” ืืช ืคื•ื ืงืฆื™ื™ืช ื”ื’ื™ื‘ื•ื‘ modulo 1 ืฉืœ ื”ืžืคืชื— (ื›ืœื•ืžืจ ืœื•ืงื— ืืช 000 ื”ืกืคืจื•ืช ื”ืื—ืจื•ื ื•ืช), ื”ื‘ื“ื™ืงื” ื”ืฉื ื™ื™ื” ืขื•ืœื” ืจืง ืคืขื•ืœื” ืื—ืช ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืืœืžื ื˜ื™ื ื‘ืงื˜ืข 000. ื”ืืชื’ืจ ื”ืืžื™ืชื™ ื”ื•ื ืœืžืฆื•ื ืคื•ื ืงืฆื™ื™ืช Hash ื˜ื•ื‘ื” ืฉืชื™ืฆื•ืจ ื“ืœื™ื™ื ื”ืžื›ื™ืœื™ื ืžืกืคืจ ืงื˜ืŸ ืžืื•ื“ ืฉืœ ืืœืžื ื˜ื™ื.

ื‘ื“ื•ื’ืžื” ืฉืœื™, ืงืœ ืœืžืฆื•ื ืคื•ื ืงืฆื™ื™ืช Hash ื˜ื•ื‘ื”. ืื‘ืœ ื–ื• ื“ื•ื’ืžื” ืคืฉื•ื˜ื”, ืงืฉื” ื™ื•ืชืจ ืœืžืฆื•ื ืคื•ื ืงืฆื™ื™ืช Hash ื˜ื•ื‘ื” ื›ืืฉืจ ื”ืžืคืชื— ื”ื•ื:

  • ืžื—ืจื•ื–ืช (ืœื“ื•ื’ืžื” - ืฉื ืžืฉืคื—ื”)
  • 2 ืฉื•ืจื•ืช (ืœื“ื•ื’ืžื” - ืฉื ืžืฉืคื—ื” ื•ืฉื ืคืจื˜ื™)
  • 2 ืฉื•ืจื•ืช ื•ืชืืจื™ืš (ืœื“ื•ื’ืžื” - ืฉื ืžืฉืคื—ื”, ืฉื ืคืจื˜ื™ ื•ืชืืจื™ืš ืœื™ื“ื”)
  • ...

ืขื ืคื•ื ืงืฆื™ื™ืช Hash ื˜ื•ื‘ื”, ื—ื™ืคื•ืฉื™ ื˜ื‘ืœืช Hash ืขื•ืœื™ื O(1).

ืžืขืจืš ืœืขื•ืžืช ื˜ื‘ืœืช hash

ืœืžื” ืœื ืœื”ืฉืชืžืฉ ื‘ืžืขืจืš?

ื”ืžืž, ืฉืืœื” ื˜ื•ื‘ื”.

  • ื˜ื‘ืœืช ื”ื’ื™ื‘ื•ื‘ ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื ื˜ืขืŸ ื—ืœืงื™ืช ืœื–ื™ื›ืจื•ืŸ, ื•ื”ืงื˜ืขื™ื ื”ื ื•ืชืจื™ื ื™ื›ื•ืœื™ื ืœื”ื™ืฉืืจ ื‘ื“ื™ืกืง.
  • ืขื ืžืขืจืš ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ืฉื˜ื— ืจืฆื™ืฃ ื‘ื–ื™ื›ืจื•ืŸ. ืื ืืชื” ืžืขืžื™ืก ืฉื•ืœื—ืŸ ื’ื“ื•ืœ ืงืฉื” ืžืื•ื“ ืœืžืฆื•ื ืžืกืคื™ืง ืžืงื•ื ืจืฆื™ืฃ.
  • ืขื‘ื•ืจ ื˜ื‘ืœืช ื’ื™ื‘ื•ื‘, ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ืืช ื”ืžืคืชื— ืฉืืชื” ืจื•ืฆื” (ืœื“ื•ื’ืžื”, ืžื“ื™ื ื” ื•ืฉื ืžืฉืคื—ื” ืฉืœ ืื“ื).

ืœืžื™ื“ืข ื ื•ืกืฃ, ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื”ืžืืžืจ ืขืœ Javaืžืคืช ื’ื™ื‘ื•ื‘, ืฉื”ื•ื ื™ื™ืฉื•ื ื™ืขื™ืœ ืฉืœ ื˜ื‘ืœืช hash; ืื™ื ืš ืฆืจื™ืš ืœื”ื‘ื™ืŸ ื’'ืื•ื•ื” ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืžื•ืฉื’ื™ื ื”ืžื›ื•ืกื™ื ื‘ืžืืžืจ ื–ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”