ืืื ืืืจ! ืื ื ืืฆืื ืืชืฉืืืช ืืื ืืช ืืชืจืืื ืฉื ืืืืืจ
ืืฉืื ืืืืข ืืืืืจื ืืืืข ืืืกื ืื ื ืื ืืืื ืฉืื ืืืฉืื ืฉืืฉืื ืืกืจ. ืื ืืฉืืฉืื ืืื ืืงืื. ืืฉื ื ืืกืื ื ืชืื ืื ืจืืื ืืฉืื ืื, ืืื ื-SQLite ืืงืื ืืืฉืืืืฉื ืืขื ื-Teradata ืืขืืฆืืชื. ืืื ืืฉ ืจืง ืืื ืืืืจืื ืฉืืกืืืจืื ืืื ืืกื ืื ืชืื ืื ืขืืื. ืืชื ืืืื ืืืคืฉ ืืขืฆืื ืืืืฆืขืืช "howdoesarelationaldatabasework" ืืื ืืจืืืช ืืื ืืขื ืชืืฆืืืช ืืฉ. ืืชืจ ืขื ืื, ืืืืืจืื ืืืื ืงืฆืจืื. ืื ืืชื ืืืคืฉ ืืช ืืืื ืืืืืืืช ืืืืื ืืขืืื ืืืช ืืืืชืจ (BigData, NoSQL ืื JavaScript), ืชืืฆื ืืืืจืื ืืขืืืงืื ืืืชืจ ืืืกืืืจืื ืืืฆื ืื ืคืืขืืื.
ืืื ืืกืื ื ืชืื ืื ืืืกืืื ืืฉื ืื ืืื ืืืฉืขืืืื ืืืื ืฉื ืืชื ืืืื ืืืกืืืจ ืืืชื ืืืืฅ ืืงืืจืกืื ืืืื ืืืจืกืืื, ืืืืจื ืืืงืจ ืืกืคืจืื?
ืืืคืชื, ืื ื ืฉืื ื ืืืฉืชืืฉ ืืืฉืื ืฉืื ื ืื ืืืื. ืืื ื ืขืฉื ืฉืืืืฉ ืืืืืจื ืืืืข ืืืจ ืืืชืจ ื-40 ืฉื ื, ืืืืืช ืืืืืช ืกืืื. ืืืืื ืืฉื ืื, ืืืืืชื ืืืืช ืฉืขืืช ืืื ืืืืื ืืืืช ืืช ืืงืืคืกืืืช ืืฉืืืจืืช ืืืืืจืืช ืืืื ืฉืื ื ืืฉืชืืฉ ืืื ืืื ืืื. ืืืืจื ืืืืข ืืืกืืื ืืืื ืืขื ืืื ืื ืื ืืืืกืก ืขื ืืืฉืืื ืฉืืืืฉืืื ืื ืืชื ืื ืืฉืืืืฉ ืืืืจ. ืื ืืชื ืืขืื ืืื ืืืืื ืืกื ื ืชืื ืื, ืื ืืขืืื ืื ืืื ืื ืืื ืื ืืฉืง ืืืชืขืืง ืื ืืฉื ืจืื ืื, ืืชื ืฆืจืื ืืืื ืืช ืืืืืจ ืื.
ืืืจืืช ืฉืืืืชืจืช ืฉื ืืืืจ ืื ืืคืืจืฉืช, ืืืจืช ืืืืจ ืื ืืื ืื ืืืืื ืืืฆื ืืืฉืชืืฉ ืืืกื ืื ืชืื ืื. ืืื, ืืชื ืืืจ ืืืืจ ืืืขืช ืืื ืืืชืื ืืงืฉืช ืืืืืจ ืคืฉืืื ืืฉืืืืชืืช ืืกืืกืืืช ืืื ืื; ืืืจืช ืืชื ืขืืื ืื ืืืืื ืืช ืืืืืจ ืืื. ืื ืืืืจ ืืืืื ืฉืืชื ืฆืจืื ืืืขืช, ืื ื ืืกืืืจ ืืช ืืฉืืจ.
ืืชืืื ืขื ืืื ืืกืืืืช ืืืืขื ืืืืฉื, ืืืื ืืืจืืืืช ืืืื ืฉื ืืืืืจืืชืืื (BigO). ืื ื ืืืืข ืฉืืืงืื ืฉืื ืืื ืืช ืืืืฉื ืืื, ืืื ืืืขืืื ืื ืชืืืื ืืืืื ืืช ืืืืจืืืืืืช ืืชืื ืืกื ืื ืชืื ืื. ืืืืืื ืฉืื ื ืืฉื ืขื ืง, ืื ื ืืชืืงื ื ืื ืฉืื ื ืืืฉื ืฉืืฉืื: ืืืฆื ืืขืื ืืกื ืื ืชืื ืื SQL ะทะฐะฟัะพั. ืื ื ืจืง ืืฆืื ืืืฉืื ืืกื ื ืชืื ืื ืืกืืกืืืืื ืฉืืกืืฃ ืืืืืจ ืืฉ ืื ืืืฉื ืื ืงืืจื ืืชืืช ืืืืกื ืืื ืืข.
ืืืืืื ืฉืืืืืจ ืืืืืจ ืืจืื ืืืื ื ืืืืื ืืจืื ืืืืืจืืชืืื ืืืื ื ื ืชืื ืื, ืงืื ืืช ืืืื ืฉืืื ืืงืจืื ืืืชื. ืืื ืืืฉืืื ืขืฉืืืื ืืืืืช ืงืฉืื ืืืื ื; ืืชื ืืืื ืืืื ืขืืืื ืืขืืืื ืืงืื ืืช ืืจืขืืื ืืืืื.
ืืืขืื ืืืข ืืืื ืื, ืืืืจ ืื ืืืืืง ื-3 ืืืงืื:
- ืกืงืืจื ืืืืืช ืฉื ืจืืืื ืืกื ื ืชืื ืื ืืจืื ื ืืืื ืืืจืื ืืืืื
- ืกืงืืจื ืืืืืช ืฉื ืชืืืื ืืืคืืืืืืฆืืืช ืืฉืืืืชืืช
- ืกืงืืจื ืืืืืช ืฉื ื ืืืื ืขืกืงืืืช ืืืืืจ ืืืืจ
ืืืืจื ืืืกืืก
ืืคื ื ืฉื ืื (ืืืืงืกืื ืจืืืงื, ืจืืืงื...), ืืืคืชืืื ืืื ืฆืจืืืื ืืืขืช ืืืืืง ืืช ืืกืคืจ ืืคืขืืืืช ืฉืื ืืงืืืืื. ืื ืืืืจื ืืขื ืคื ืืช ืืืืืืจืืชืืื ืืืื ื ืื ืชืื ืื ืฉืืื ืืืืืื ืฉืื ืื ืืืื ืืืจืฉืืช ืืขืฆืื ืืืืื ืืช ืืืขืื ืืืืืืจืื ืฉื ืืืืฉืืื ืืืืืืื ืฉืืื.
ืืืืง ืื, ืืืืืจ ืืื ืืื ืืืืืฉืืื ืืืื ืฉืื ืื ืืืื ืืื ืืืื ืช ืืกื ืื ืชืื ืื. ืืฆืื ืื ืืช ืืืืฉื ืืื ืืงืก ืืกื ื ืชืื ืื.
O(1) ืืขืืืช O(n2)
ืืืื, ืืืคืชืืื ืจืืื ืื ืืืคืช ืืืืจืืืืช ืืืื ืฉื ืืืืืืจืืชืืื... ืืื ืฆืืืงืื!
ืืื ืืืฉืจ ืืชื ืืชืืืื ืขื ืืจืื ื ืชืื ืื (ืื ื ืื ืืืืจ ืขื ืืืคืื) ืื ืื ืืชื ื ืืืง ืืืืคืืืช ืฉื ืืืช, ืื ืืืคื ืืืืืช ืงืจืืื ืืืืื ืืช ืืืืฉื ืืื. ืืืคื ืฉืืชื ืืืื ืืืืืื, ืืกืื ื ืชืื ืื ืฆืจืืืื ืืืชืืืื ืขื ืฉื ื ืืืฆืืื! ืื ื ืื ืืืจืื ืื ืืืฉืงืืข ืืืชืจ ืืื ืืื ืืจืฉ ืืื ืืืขืืืจ ืืช ืื ืงืืื. ืื ืืขืืืจ ืื ื ืืืืื ืืช ืืจืขืืื ืฉื ืืืคืืืืืืฆืื ืืืืกืกืช ืขืืืช ืืืืืจ ืืืชืจ (ืขืืืช ืืืืกืก ืืืคืืืืืืฆืื).
ืืืฉื
ืืืจืืืืช ืืืื ืฉื ืืืืืืจืืชื ืืฉืืฉ ืืื ืืจืืืช ืืื ืืื ืืืงื ืืืคืขืื ืืืืืจืืชื ืขืืืจ ืืืืช ื ืชืื ืื ื ืชืื ื. ืืื ืืชืืจ ืืช ืืืืจืืืืช ืืื, ืื ื ืืฉืชืืฉืื ืืกืืืื ืืชืืื ืืืื O. ื ืขืฉื ืฉืืืืฉ ืืกืืืื ืื ืขื ืคืื ืงืฆืื ืืืชืืจืช โโืืื ืคืขืืืืช ืฆืจืื ืืืืืจืืชื ืขืืืจ ืืกืคืจ ื ืชืื ืฉื ืื ืืกืืช.
ืืืืืื, ืืฉืื ื ืืืืจ "ืืืืืืจืืชื ืืื ืืฉ ืืืจืืืืช O(some_function())", ืื ืืืืจ ืฉืืืืืืจืืชื ืืืจืฉ ืคืขืืืืช some_function(a_certain_amount_of_data) ืืื ืืขืื ืืืืช ืืกืืืืช ืฉื ื ืชืื ืื.
ืืืงืจื ืื, ืื ืื ืืืืช ืื ืชืื ืื ืฉืืฉืืื**, ืืืจืช ** ืืืฆื ืืกืคืจ ืืคืขืืืืช ืืื ืขื ืืืืืช ื ืคื ืื ืชืื ืื. ืืืจืืืืช ืืืื ืืื ื ืืกืคืงืช ืืกืคืจ ืืืืืง ืฉื ืคืขืืืืช, ืื ืืื ืืจื ืืืื ืืืขืจืื ืืช ืืื ืืืืฆืืข.
ืืืจืฃ ืื ื ืืชื ืืจืืืช ืืช ืืกืคืจ ืืคืขืืืืช ืืื ืืืืช ื ืชืื ื ืืงืื ืขืืืจ ืกืืืื ืฉืื ืื ืฉื ืืืจืืืืช ืืื ืืืืืจืืชืืื. ืืฉืชืืฉืชื ืืกืืื ืืืืจืืชืื ืืื ืืืฆืื ืืืชื. ืืืืืื ืืืจืืช, ืืืืช ืื ืชืื ืื ืืืื ืืืืืจืืช ื-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, ืจืง ืืื ืืืฆืืฅ ืืช ืืขืื ืืื. ืืื, ืืขืืืื ืืืืจื ืืื ืืืืืื ืืขืื
ืืคื ืฉืืืจืชื, ืขืืืื ืืฉืื ืืืืืจ ืืช ืืืืฉื ืืื ืืฉืขืืืืื ืขื ืืืืืืช ืืืืจืืช ืฉื ื ืชืื ืื. ืื ืืคืขื ืืืืืืจืืชื ืฆืจืื ืืขืื 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 ืคืขืืืืช. ืคืขืืื ืื ื ืงืจืืช ืืืืื.
ืืืื ื ืจืื ืื ืื ืืืืจ ืขื ืืืืื ืคืฉืืื:
ืืืืจ ืื ืืจืื ืฉืืื ืืื ืืช ืืช ืืขืจื 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;
ืืืื ืืืืื ืืคืจืง ืืขืื ืืืขืืืช ืงืื ืืช ืืืชืจ ืืื ืืืฆื ืืช ืืชืืฆืืืช ืฉื ืืืขืืืช ืืงืื ืืช ืืืชืจ ืืื ืืงืื ืืช ืืชืืฆืื ืฉื ืืืขืื ืืืงืืจืืช (ืฉืืื ืื: ืกืื ืื ืฉื ืืืืืจืืชื ื ืงืจื ืืืง ืืืืฉ). ืื ืืื ื ืืืื ืืช ืืืืืืจืืชื ืืื, ืื ืชืืื; ืื ืืื ืชื ืืช ืื ืืคืขื ืืจืืฉืื ื ืฉืจืืืชื ืืช ืื. ืื ืื ืืืื ืืขืืืจ ืื, ืื ื ืจืืื ืืช ืืืืืืจืืชื ืืื ืืืืืืจืืชื ืื-ืคืืื:
- ืฉืื ืืืืืงื, ืฉืื ืืืขืจื ืืืืืง ืืืขืจืืื ืงืื ืื ืืืชืจ
- ืฉืื ืืืืื ืืื ืฉืื ืืขืจืืื ืงืื ืื ืืฉืืืืื (ืืืืฆืขืืช ืืืืื) ืืืฆืืจืช ืืขืจื ืืืื ืืืชืจ.
ืฉืื ืืืืืงื
ืืฉืื ืืืืืงื ืืืขืจื ืืืืืง ืืืขืจืืื ืืืืืชืืื ื-3 ืฉืืืื. ืืืกืคืจ ืืจืฉืื ืฉื ืืฉืืืื ืืื log(N) (ืืืืืื ืฉ-N=8, log(N) = 3).
ืืื ืื ื ืืืืข ืืช ืื?
ืื ื ืืืื! ืืืืื ืืืช - ืืชืืืืงื. ืืจืขืืื ืืื ืฉืื ืฉืื ืืืืง ืืช ืืืื ืืืขืจื ืืืงืืจื ื-2. ืืกืคืจ ืืฉืืืื ืืื ืืกืคืจ ืืคืขืืื ืฉื ืืชื ืืืืง ืืช ืืืขืจื ืืืงืืจื ืืฉื ืืื. ืืืื ืืืืืจื ืืืืืืงืช ืฉื ืืืืจืืชื (ืืกืืก 2).
ืฉืื ืืืืื
ืืฉืื ืืืืื ืืชืืืืื ืขื ืืขืจืืื ืืื ืืืจืืื (ืืืื ื ืืืื). ืืืืื ืื ืฉืื ืืชื ืืืื ืคืขืืืืช ืืืืื ืืจืืืืช ืืืขืืืช ืืืืืืช ืืื N = 8 ืคืขืืืืช:
- ืืฉืื ืืจืืฉืื ืืฉ ืื 4 ืืืืืืื ืฉืขืืืื 2 ืคืขืืืืช ืื ืืื
- ืืฉืื ืืฉื ื ืืฉ ืื 2 ืืืืืืื ืฉืขืืืื 4 ืคืขืืืืช ืื ืืื
- ืืฉืื ืืฉืืืฉื ืืฉ ืื ืืืืื 1 ืฉืขืืื 8 ืคืขืืืืช
ืืืืืื ืฉืืฉื ื ืฉืืืื ืืืืื (N), ืขืืืช ืืืืืช N * log(N) ืคืขืืืืช.
ืืชืจืื ืืช ืืืื ืืืืื
ืืื ืืืืืืจืืชื ืืื ืื ืื ืืืง?
ืื:
- ืืชื ืืืื ืืฉื ืืช ืืืชื ืืื ืืืงืืื ืืช ืืืืขืช ืืจืื ืฉื ืืืืืจืื ืื ืฉืื ืชืืฆืืจ ืืขืจืืื ืืืฉืื ืืื ืชืฉื ื ืืฉืืจืืช ืืช ืืขืจื ืืงืื.
ืืขืจื: ืกืื ืื ืฉื ืืืืืจืืชื ื ืงืจื
- ืืชื ืืืื ืืฉื ืืช ืืช ืื ืืื ืืืฉืชืืฉ ืืฉืื ืืืกืง ืืืืืช ืงืื ื ืฉื ืืืืจืื ืื-ืืื ืืช ืืืื ืืืื ืืก ืชืงืืจื ืืฉืืขืืชืืช ืืืืกืง I/O. ืืจืขืืื ืืื ืืืขืื ืืืืืจืื ืจืง ืืช ืืืืงืื ืฉื ืืฆืืื ืืขืช ืืขืืืื. ืื ืืฉืื ืืืฉืจ ืืชื ืฆืจืื ืืืืื ืืืื ืืจืืื ืืืื ืขื ืืืืจ ืืืืจืื ืฉื 100 ืืื-ืืืื ืืืื.
ืืขืจื: ืกืื ืื ืฉื ืืืืืจืืชื ื ืงืจื
- ืืชื ืืืื ืืฉื ืืช ืืืชื ืื ืฉืืคืขื ืืืกืคืจ ืชืืืืืื/ืฉืจืฉืืจืื/ืฉืจืชืื.
ืืืืืื, ืืืื ืืืืื ืืืืืจ ืืื ืืื ืืืจืืืื ืืืคืชื
- ืืืืืืจืืชื ืืื ืืืื ืืืคืื ืขืืคืจืช ืืืื (ืืืืช!).
ืืืืืจืืชื ืืืื ืื ื ืืฆื ืืฉืืืืฉ ืืจืื ืืกืื ืื ืชืื ืื (ืื ืื ืืืื), ืื ืืื ืืื ื ืืืืื. ืื ืืชื ืจืืฆื ืืืขืช ืืืชืจ, ืืชื ืืืื ืืงืจืื ืืช ืื
ืืืืช ืืขืจื, ืขืฅ ื- Hash
ืืขืช, ืืืืจ ืฉืืื ื ืืช ืืจืขืืื ืฉื ืืืจืืืืช ืืืื ืืืืืื, ืขืื ืืกืคืจ ืืื ืขื 3 ืืื ื ื ืชืื ืื. ืื ืืฉืื ืื ืื ืื ืืืกืืก ืืืืืจื ืืืืข ืืืืจื ืืื. ืืฆืื ืื ืืช ืืืืฉื ืืื ืืงืก ืืกื ื ืชืื ืื.
ะะฐััะธะฒ
ืืขืจื ืื ืืืืื ืืื ืืื ื ืื ืชืื ืื ืืคืฉืื ืืืืชืจ. ืืคืฉืจ ืืืฉืื ืขื ืืืื ืืืขืจื. ืืืืืื:
ืืขืจื ืื ืืืืื ืื ืืื ืืืื ืขื ืฉืืจืืช ืืขืืืืืช:
- ืื ืฉืืจื ืืืืฆืืช ืืฉืืช
- ืขืืืืืช ืืืืกื ืืช ืืืคืืื ืื ืืืชืืจืื ืืช ืืืฉืืช.
- ืื ืขืืืื ืืืืกื ืช ื ืชืื ืื ืืกืื ืืกืืื (ืืกืคืจ ืฉืื, ืืืจืืืช, ืชืืจืื...).
ืื ื ืื ืืืืกืื ืืืฆืื ืฉื ื ืชืื ืื, ืขื ืืืช, ืืืฉืจ ืืชื ืฆืจืื ืืืฆืื ืขืจื ืืกืืื, ืื ืื ืืชืืื.
ืืืืืื, ืื ืชืจืฆื ืืืฆืื ืืช ืื ืืืืืจืื ืฉืขืืืืื ืืืจืืื ืื, ืชืฆืืจื ืืืกืชืื ืขื ืื ืฉืืจื ืืื ืืงืืืข ืื ืืฉืืจื ืืื ืฉืืืืช ืืืจืืื ืื. ืื ืืขืื ืื N ืขืกืงืืืชืืืคื N - ืืกืคืจ ืงืืืื, ืืื ืื ืจืข, ืืื ืืื ืืฉ ืืจื ืืืืจื ืืืชืจ? ืขืืฉืื ืืืืข ืืืื ืฉื ืืืจ ืืช ืืขืฆืื.
ืืขืจื: ืจืื ืืกืื ืื ืชืื ืื ืืืืืจื ืืื ืืกืคืงืื ืืขืจืืื ืืืจืืืื ืืืืกืื ืืืืืืช ืืืขืืืืช: ืืืืืืช ืขืจืืืืช ืืืืืืืช ืืืืจืื ืืช ืืืื ืืงืก. ืืื ืื ืื ืืฉื ื ืืช ืืืขืื ืฉื ืืฆืืืช ืืฆื ืกืคืฆืืคื ืืืืืจืืช ืืงืืืฆืช ืขืืืืืช.
ืขืฅ ืืกื ื ืชืื ืื ืืืื ืืงืก
ืขืฅ ืืืคืืฉ ืืื ืืจื ืืื ืขืฅ ืืื ืืจื ืขื ืืืคืืื ืืืืื, ืืืคืชื ืืื ืฆืืืช ืืืื ืืืืืช:
- ืืืื ืืืชืจ ืืื ืืืคืชืืืช ืืืืืืกื ืื ืืชืช ืืขืฅ ืืฉืืืื
- ืคืืืช ืืื ืืืคืชืืืช ืืืืืืกื ืื ืืชืช-ืขืฅ ืืืื ื
ืืื ื ืจืื ืื ืื ืืืืจ ืืืืื ื ืืืืืืืืช
ืจืขืืื
ืืขืฅ ืืื ืืฉ 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:
- ืจืง ืืฆืืชืื ืื ืืืืื ืืืืชืจ (ืขืืื) ืืืกืื ืืืืข (ืืืงืื ืืฉืืจืืช ืืืืื ืืงืฉืืจื)
- ืฉืืจ ืืฆืืชืื ื ืืฆืืื ืืื ืื ืืชืื ืืฆืืืช ืื ืืื ืืืืื ืืืืคืืฉ.
ืืคื ืฉืืชื ืืืื ืืจืืืช, ืืฉ ืืื ืืืชืจ ืฆืืชืื (ืคืขืืืื). ืืื, ืืฉ ืื ืฆืืชืื ื ืืกืคืื, "ืฆืืชื ืืืืื", ืฉืืขืืจื ืื ืืืฆืื ืืช ืืฆืืืช ืื ืืื (ืฉืืืืกื ืืช ืืืงืื ืืฉืืจืืช ืืืืื ืืืฉืืืืช). ืืื ืืืจืืืืช ืืืืคืืฉ ืืื ืขืืืื 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+ ืฆืจืื ืืืืืช ืืืืื ืืืืืืื.
ืืืืช ืืืืื
ืืื ื ืื ืชืื ืื ืืืฉืื ืืืืจืื ืฉืื ื ืืื ืืืืช ืืืืืื. ืื ืืืื ืฉืืืืฉื ืืืฉืจ ืืชื ืจืืฆื ืืืคืฉ ืืืืืจืืช ืขืจืืื. ืืชืจื ืืื, ืืื ืช ืืืืช ืืืืื ืชืขืืืจ ืื ื ืืืืืจ ืืืชืจ ืืืืื ืคืขืืืช ืืฆืืจืคืืช ื ืคืืฆื ืืืกื ื ืชืื ืื ืื ืงืจืืช ืืืืืจ hash ( hash ืืืฆืืจืฃ). ืืื ื ืื ืชืื ืื ืืื ืืฉืืฉ ืื ืืช ืืกื ืื ืชืื ืื ืืื ืืืืกื ืืื ืืืจืื ืคื ืืืืื (ืืืฉื. ืฉืืืื ืื ืขืื ืื ืืจืืืช ืืืฅ, ื ืจืื ืืช ืฉื ื ืืืืฉืืื ืืืื ืืืืืจ ืืืชืจ).
ืืืืช hash ืืื ืืื ื ื ืชืื ืื ืฉืืืฆื ืืืืืจืืช ืืืื ื ืืคื ืืืคืชื ืฉืื. ืืื ืืื ืืช ืืืืช ืืืืื ืืชื ืฆืจืื ืืืืืืจ:
- ะบะปัั ืขืืืจ ืืืืื ืืื ืฉืื
- ืคืื ืงืฆืืืช hash ืขืืืจ ืืคืชืืืช. ืืืืืืืื ืืืืืฉืืื ืฉื ืืืคืชื ื ืืชื ืื ืืช ืืืงืื ืืืืื ืืื (ื ืงืจื ืงืืขืื ).
- ืคืื ืงืฆืื ืืืฉืืืืช ืืคืชืืืช. ืืืืจ ืฉืืฆืืช ืืช ืืคืื ืื ืืื, ืขืืื ืืืฆืื ืืช ืืืืื ื ืฉืืชื ืืืคืฉ ืืชืื ืืคืื ืืืืฆืขืืช ืืฉืืืื ืื.
ืืืืื ืคืฉืืื
ื ืืงื ืืืืื ืืจืืจื:
ืืืืช ืืืืืื ืืื ืืืืืช 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
ืืื ืื ืืืฉืชืืฉ ืืืขืจื?
ืืื, ืฉืืื ืืืื.
- ืืืืช ืืืืืื ืืืืื ืืืืืช ื ืืขื ืืืงืืช ืืืืืจืื, ืืืงืืขืื ืื ืืชืจืื ืืืืืื ืืืืฉืืจ ืืืืกืง.
- ืขื ืืขืจื ืขืืื ืืืฉืชืืฉ ืืฉืื ืจืฆืืฃ ืืืืืจืื. ืื ืืชื ืืขืืืก ืฉืืืื ืืืื ืงืฉื ืืืื ืืืฆืื ืืกืคืืง ืืงืื ืจืฆืืฃ.
- ืขืืืจ ืืืืช ืืืืื, ืืชื ืืืื ืืืืืจ ืืช ืืืคืชื ืฉืืชื ืจืืฆื (ืืืืืื, ืืืื ื ืืฉื ืืฉืคืื ืฉื ืืื).
ืืืืืข ื ืืกืฃ, ืืชื ืืืื ืืงืจืื ืืช ืืืืืจ ืขื
ืืงืืจ: www.habr.com