แฐแแ แฐแแแ ! แแฅแแแแก แงแฃแ แแแฆแแแแก แฌแแ แแแแแแแแแ แกแขแแขแแแก แแแ แแแแแก
แ แแช แจแแแฎแแแ แ แแแแชแแฃแ แแแแแชแแแแ แแแแแแก, แแ แจแแแแซแแแ แแ แแคแแฅแ แแ, แ แแ แ แแฆแแช แแแแแ. แแกแแแ แงแแแแแแ แแแแแแงแแแแแ. แฎแแแแแกแแฌแแแแแแ แแ แแแแแ แแแแกแฎแแแแแแฃแแ แแแแแชแแแแ แแแแ, แแชแแ แ แแ แกแแกแแ แแแแแ SQLite-แแแ แซแแแแ Teradata-แแแ. แแแแ แแ แแ แแก แแฎแแแแ แ แแแแแแแแ แกแขแแขแแ, แ แแแแแแช แแแแแแ แขแแแก, แแฃ แ แแแแ แแฃแจแแแแก แแแแแชแแแแ แแแแ. แแฅแแแ แจแแแแซแแแแ แแแซแแแแแ แกแแแฃแแแ แ แแแแ "howdoesarelationaldatabasework"-แแก แแแแแงแแแแแแ, แ แแแ แแแฎแแ แ แแแแแแแ แชแแขแแ แจแแแแแ. แฃแคแ แ แแแขแแช, แแก แกแขแแขแแแแ แแแแแแ. แแฃ แแฅแแแ แแซแแแ แฃแแฎแแแก แฎแแแฃแ แแแ แขแแฅแแแแแแแแแก (BigData, NoSQL แแ JavaScript), แแฅแแแ แแแแแแ แฃแคแ แ แฆแ แแ แกแขแแขแแแแก, แ แแแแแแแช แแแแแแ แขแแแก, แแฃ แ แแแแ แแฃแจแแแแก แแกแแแ.
แแ แแก แแฃ แแ แ แ แแแแชแแฃแ แ แแแแแชแแแแ แแแแแแ แซแแแแแ แซแแแแ แแ แซแแแแแ แแแกแแฌแงแแแ, แ แแ แแแฎแกแแแก แฃแแแแแ แกแแขแแขแแก แแฃแ แกแแแแก, แแแแแแแแ แแแจแ แแแแแแก แแ แฌแแแแแแแก แแแฆแแ?
แ แแแแ แช แแแแแแแแแ แก, แแแแแแฆแแแ แ แแฆแแชแแก แแแแแงแแแแแ, แ แแช แแ แแแกแแแก. แแ แแฃ แแแแแชแแแแ แแแแแแ แแแแแแงแแแแแ 40 แฌแแแแ แแแขแ แฎแแแก แแแแแแแแแแแจแ, แแแแแแ แฃแแแ แแงแแก. แฌแแแแแก แแแแแแแแแแแจแ แแกแแแแ แกแแแแ แแแแฎแแ แฏแ แแ แฃแชแแแฃแ แ แจแแแ แงแฃแแแแแก แแแกแแแแแแ, แ แแแแแแกแแช แงแแแแแแฆแ แแแงแแแแ. แ แแแแขแแฃแ แ แแแแแชแแแแ แแแแแแ แซแแแแแ แกแแแแขแแ แแกแแ, แ แแแแแ แแกแแแ แกแแกแแ แแแแแ แแ แแ แแแแแฏแแ แแแ แแแแแงแแแแแแก แแแแชแแคแชแแแแแ แแแงแ แแแแแแ. แแฃ แแฅแแแ แแแแแขแแ แแกแแแ แแแแแชแแแแ แแแแแก แแแแแแ, แแแแ แแ แแ แแกแแแแก แแฅแแแแแ แแ แ แแ แแแแ แแแแแแแ แแ แคแแ แแ แแแแแก แฉแแกแแขแแ แแแแแ, แฃแแแ แแกแแแแแแแแ แแ แกแขแแขแแแ.
แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแ แกแขแแขแแแก แกแแแแฃแ แ แแจแแแ แแ, แแ แกแขแแขแแแก แแแแแแ แแ แแ แแก แแแแก แแแแแแ, แแฃ แ แแแแ แแแแแแงแแแแ แแแแแชแแแแ แแแแ. แแแแขแแ, แแฅแแแ แฃแแแ แฃแแแ แแชแแแแ แ แแแแ แแแฌแแ แแ แแแ แขแแแ แแแแจแแ แแก แแแแฎแแแแ แแ แซแแ แแแแแ แแแแฎแแแแแแ แแ แฃแ; แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แจแแแซแแแแ แแแ แแแแแแ แแก แกแขแแขแแ. แแก แแ แแแแแ แแแ แ แแช แฃแแแ แแชแแแ, แแแแแ แฉแแแก แแแแฎแกแแ.
แแแแแฌแงแแ แแแแแแฃแขแแ แฃแแ แแแชแแแแ แแแแก แแแแแแ แแ แกแแคแฃแซแแแแแแ, แ แแแแ แแชแแ แแแแแ แแแแแแแก แแ แแแก แกแแ แแฃแแ (BigO). แแ แแแชแ, แ แแ แแแแแแ แ แแฅแแแแแแแก แกแซแฃแแก แแก แแแแชแแคแชแแ, แแแแ แแ แแแแก แแแ แแจแ แแฅแแแ แแแ แจแแซแแแแ แแแแแแ แแแแแชแแแแ แแแแแจแ แแ แกแแแฃแแ แกแแ แแฃแแแแแ. แ แแแแแ แแก แแแแ แแแแแ, แงแฃแ แแแฆแแแแก แแแแแแแฎแแแแแ แ แแช แแ แแคแแฅแ แแ แแแแจแแแแแแแแแแ: แ แแแแ แแฃแจแแแแแแ แแแแแชแแแแ แแแแ SQL แแแแแซแแแแ. แฃแแ แแแแ แแแแแชแแแ แแแแแชแแแแ แแแแแก แซแแ แแแแแ แชแแแแแแแแกแ, แ แแ แกแขแแขแแแก แแแแแก แแฅแแแแแ แฌแแ แแแแแแแ แแแแแ, แแฃ แ แ แฎแแแแ แฅแฃแแแก แฅแแแจ.
แแแแแแแแ แแก แแ แแก แแ แซแแแ แแ แขแแฅแแแแฃแ แ แกแขแแขแแ, แ แแแแแแช แแแแชแแแก แฃแแแ แแ แแแแแ แแแแก แแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแก, แแแฃแแแแ แแ แ แแแก แฌแแแแแฎแแแก. แแแแแแ แแ แชแแแแ แจแแแซแแแแ แ แแฃแแ แแแกแแแแแ แแงแแก; แจแแแแซแแแแ แแแแแขแแแแ แแกแแแ แแ แแแแแช แแแแฆแแ แแแแแแ แแแแ.
แแฅแแแ แจแแ แแก แฃแคแ แ แแชแแแแแแแแกแแแแก, แแก แกแขแแขแแ แแแงแแคแแแแ 3 แแแฌแแแแ:
- แแแแแแ แแ แแแฆแแแ แแแแแก แแแแแชแแแแ แแแแแก แแแแแแแแแขแแแแก แแแแแฎแแแแ
- แจแแแแแฎแแแก แแแขแแแแแแชแแแก แแ แแชแแกแแก แแแแแฎแแแแ
- แขแ แแแแแฅแชแแแกแ แแ แแฃแคแแ แฃแแ แคแแแแแก แแแ แแแแก แแแแแฎแแแแ
แกแแคแฃแซแแแแแก แแแฃแแ แฃแแแแ
แฌแแแแแก แฌแแ (แจแแ แก, แจแแ แแฃแ แแแแแฅแขแแแแจแ...), แแแแแแแแแ แแแก แแฃแกแขแแ แฃแแแ แกแชแแแแแแแ แแแแ แแชแแแแแก แ แแแแแแแแ, แ แแแแแแกแแช แแกแแแ แแแแแ แแแแแแ. แแแ แแแแแ แแ แแชแแแแแ แแแแแแแแ แแแแแ แแแแแแ แแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแแ, แ แแแแแ แแ แจแแแซแแแ แแแแแแแแ แแแแ แแแแแแฃแขแแ แแแแก CPU แแ แแแฎแกแแแ แแแแก แแแฎแแ แฏแแ.
แแ แแแฌแแแจแ แแ แจแแแแฎแกแแแแแ แแแแแแ แ แแ แแแแชแแคแชแแแก, แ แแแแแ แแกแแแ แแฃแชแแแแแแแแ แแแแแชแแแแ แแแแแก แแแกแแแแแแ. แแแช แแแแแชแแแ แแแแชแแคแชแแแก แแแแแชแแแแ แแแแแก แแแแแฅแกแ.
O(1) vs O(n2)
แแฆแแกแแฆแแแแแ, แแแแ แแแแแแแแแ แก แแ แแแแขแแ แแกแแแก แแแแแ แแแแแแแก แแ แแแก แกแแ แแฃแแ... แแ แแกแแแ แแแ แแแแแ แแ แแแ!
แแแแ แแ แ แแแแกแแช แกแแฅแแ แแแฅแแ แฃแแแ แแ แแแแแชแแแแแ (แแ แแ แแกแแฃแแ แแ แแแแกแแแแแแ) แแ แแฃ แแฅแแแ แแแ แซแแแ แแแแแฌแแแแแจแ, แแ แแขแแแฃแแ แฎแแแแ แแ แแแแชแแคแชแแแก แแแแแแ. แแ แ แแแแ แช แฌแแ แแแแแแแแแแแ, แแแแแชแแแแ แแแแแแก แแ แแแ แกแแขแฃแแชแแแกแแแ แฃแแแ แแแฃแแแแแแแแ! แแ แแแแซแฃแแแแ แแแฎแแ แฏแแ แแแแแ แแแขแ แแ แ, แแแแ แ แกแแญแแ แแ แแแ แแก แแแกแแแแแแ. แแก แแแแแแฎแแแ แแแ แแแแแแแแแแแ แแแแแแแ แฎแแ แฏแแแแ แแแคแฃแซแแแแฃแแ แแแขแแแแแแชแแแก แแแแชแแคแชแแ (แแแฏแแ แกแแคแฃแซแแแแแ แแแขแแแแแแชแแ).
แแแแชแแคแชแแ
แแแแแ แแแแแก แแ แแแก แกแแ แแฃแแ แแแแแแงแแแแแ แแแแก แกแแแแฎแแแแ, แแฃ แ แแแแแแ แแ แ แแแกแญแแ แแแแ แแแแแ แแแแแก แแแกแ แฃแแแแแก แแแแแชแแแแ แแแชแแแฃแแ แ แแแแแแแแแ. แแ แกแแ แแฃแแแก แแฆแกแแฌแแ แแ แแแงแแแแแ แแแแ O แแแแแแแขแแแฃแ แแฆแแแจแแแแก. แแก แแฆแแแจแแแ แแแแแแงแแแแแ แคแฃแแฅแชแแแ, แ แแแแแแช แแฆแฌแแ แก แ แแแแแแ แแแแ แแชแแ แกแญแแ แแแแ แแแแแ แแแแก แแแชแแแฃแแ แ แแแแแแแแแก แจแแงแแแแแกแแแแก.
แแแแแแแแแ, แ แแแแกแแช แแแแแแ "แแ แแแแแ แแแแก แแฅแแก แกแแ แแฃแแ O(some_function())", แแก แแแจแแแแก, แ แแ แแแแแ แแแแ แแแแแฎแแแก แแแ แแแแฃแแ_แคแฃแแฅแชแแแก (a_certain_amount_of_ta) แแแแ แแชแแแแก แแแ แแแแฃแแ แ แแแแแแแแแก แแแแแชแแแแแแก แแแกแแแฃแจแแแแแแแ.
แแ แจแแแแฎแแแแแจแ, แแ แแ แแก แแแแจแแแแแแแแแ แแแแแชแแแแแแก แ แแแแแแแแ**, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ ** แ แแแแ แแแ แแแแ แแแแ แแชแแแแแก แ แแแแแแแแ แแแแแชแแแแ แแแชแฃแแแแแก แแแขแแแแกแแแ แแ แแแ. แแ แแแก แกแแ แแฃแแ แแ แแซแแแแ แแแแ แแชแแแแแก แแฃแกแข แ แแแแแแแแแก, แแแแ แแ แแแ แแ แแแแ แจแแกแ แฃแแแแแก แแ แแแก แจแแกแแคแแกแแแแแ.
แแ แแแแแ แแแแจแ แจแแแแซแแแแ แแฎแแแแ แแแแ แแชแแแแแก แ แแแแแแแแ แกแฎแแแแแกแฎแแ แขแแแแก แแแแแ แแแแแก แแ แแแก แกแแ แแฃแแแกแแแแก แจแแงแแแแแแ แแแแแชแแแแแแก แ แแแแแแแแแกแแแ แจแแแแ แแแแ. แแ แแแแแแแงแแแ แแแแแ แแแแฃแแ แแแกแจแขแแแ แแแ แแแแแกแแฉแแแแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแแแแชแแแแ แ แแแแแแแแ แกแฌแ แแคแแ แแแ แแแแ 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 000 000 แแแแ แแชแแ
แแแแกแฎแแแแแแ O(1) แแ O(n2) แจแแ แแก แแแแ แฉแแแก (4 แแแแแแแ แแแแ แแชแแ), แแแแ แแ แแฅแแแ แแแแแ แแแแ แแแฅแกแแแฃแ 2 ms-แก, แแฎแแแแ แแแแแแแแก แแแฎแแแฎแแแแแแก แแ แแ. แแแ แแแแช, แแแแแแแแ แแแ แแ แแชแแกแแ แแแก แจแแฃแซแแแแ แแแแฃแจแแแแแ
แ แแแแ แช แแแฅแแ, แฏแแ แแแแแ แแแแจแแแแแแแแแแ แแ แแแแชแแคแชแแแก แชแแแแ แแแแแชแแแแ แฃแแแ แแแแแ แ แแแแแแแแแกแแแ แแฃแจแแแแแกแแก. แแฃ แแแฏแแ แแ แแแแแ แแแแแ แฃแแแ แแแแแฃแจแแแแก 1 แแแแแแแขแ (แ แแช แแ แช แแกแ แแแแ แแ แแแแแชแแแแ แแแแแกแแแแก):
- O(1) แแแแแ แแแแ แแแแแฏแแแแแ 1 แแแแ แแชแแ
- O(log(n)) แแแแแ แแแแ แแแแแฏแแแแแ 14 แแแแ แแชแแ
- O(n) แแแแแ แแแแ แแแแแฏแแแแแ 1 000 000 แแแแ แแชแแ
- O(n*log(n)) แแแแแ แแแแ แแแแแฏแแแแแ 14 000 000 แแแแ แแชแแ
- 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: แแฅแแแ แแแ แแกแแ แแก แแแแฆแแแ แแฅแแแแก แจแแแแแแแก, แแฃแแแแช แแชแแ แ แ แแแแแแแแแก แแแแแชแแแแแแ.
- แแ: แแฃ แแ แกแแ แแฃแแแก แฌแแแฌแงแแแแแ, แฃแแแ แฐแแแแฎแแ แกแแแฃแแแ แแแแก, แแแแแแแแแ แแ แแก แแฃ แแ แ แแก แแฅแแแแ แกแแฅแแแแแแแแก แกแคแแ แ...
แจแแแแจแแแ: แแ แแ แแแแแฌแแแแ แแแแ O แแฆแแแจแแแแก แ แแแแฃแ แ แแแแแแ แขแแแ, แฃแแ แแแแ แแแแ. แแ แกแขแแขแแแก แฌแแแแแฎแแ แจแแแแซแแแแ แแแกแแแแ แแแ
MergeSort
แ แแก แแแแแแแ, แ แแชแ แแญแแ แแแแแ แแแแแฅแชแแแก แแแฎแแ แแกแฎแแแ? แฒ แ? แแฅแแแ แแซแแฎแแ sort() แคแฃแแฅแชแแแก... แแแ แแ, แแแ แแ แแแกแฃแฎแแ... แแแแ แแ แแแแแชแแแแ แแแแแกแแแแก, แแฅแแแ แฃแแแ แแแกแแแแแ, แ แแแแ แแฃแจแแแแก แแก sort() แคแฃแแฅแชแแ.
แแ แกแแแแแก แ แแแแแแแแ แแแ แแ แแแฎแแ แแกแฎแแแแก แแแแแ แแแแ, แแแแขแแ แแ แงแฃแ แแแฆแแแแก แแแแแแแฎแแแแแ แงแแแแแแ แแแแจแแแแแแแแแแ: แจแแ แฌแงแแ แแแฎแแ แแกแฎแแแ. แแฅแแแ แจแแแซแแแแ แแแ แแแแแแ, แ แแขแแ แแ แแก แแแแแชแแแแแแก แแแฎแแ แแกแฎแแแ แกแแกแแ แแแแแ แแฎแแ, แแแแ แแ แแฅแแแ แฃแแแ แแแแแ แแ แจแแแแแฎแแแก แแแขแแแแแแชแแแก แแแฌแแแ. แฃแคแ แ แแแขแแช, แจแแ แฌแงแแแก แแแแแแแแแก แแแแแแ แแแแแแฎแแแ แแแ แแแแแแแแแแแ แแแแแแแ แกแแแ แแ แแแแแชแแแแ แแแแแก แจแแแ แแแแแก แแแแ แแชแแ, แ แแแแแกแแช แแฌแแแแแ แจแแ แฌแงแแ แจแแฃแแ แแแแแ (แจแแ แฌแงแแแก แแกแแชแแแชแแ).
แจแแ แฌแงแแ
แแแแ แ แกแแกแแ แแแแแ แแแแแ แแแแแก แแกแแแแกแแ, แจแแ แฌแงแแแก แแแแแแแแ แแงแ แแแแแ แฎแ แแแก: N/2 แแแแแก 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 แแแแ แแชแแ
แแแแแแแแ แแ แแก log(N) แแแแแฏแแแ, แกแแแ แแ แฆแแ แแแฃแแแแ แ * log(N) แแแแ แแชแแแแ.
แจแแ แฌแงแแแก แแแฎแแ แแกแฎแแแแก แฃแแแ แแขแแกแแแแแ
แ แแขแแ แแ แแก แแก แแแแแ แแแแ แแกแแแ แซแแแแ แ?
แ แแแแแ:
- แแฅแแแ แจแแแแซแแแแ แจแแชแแแแแ แแก แแแฎแกแแแ แแแแก แแแแแแญแแแก แจแแกแแแชแแ แแแแแ แแกแ, แ แแ แแ แจแแฅแแแแ แแฎแแแ แแแกแแแแแ, แแ แแแแ แแแ แแแแแ แจแแชแแแแแ แจแแงแแแแแก แแแกแแแ.
แจแแแแจแแแ: แแ แขแแแแก แแแแแ แแแแ แ.แฌ
- แแฅแแแ แจแแแแซแแแแ แจแแชแแแแแ แแก, แ แแ แแแแแแงแแแแก แแแกแแแ แกแแแ แชแ แแ แแแฎแกแแแ แแแแก แแชแแ แ แ แแแแแแแแ แแ แแแ แแฃแแแ, แแแกแแแก แแแแจแแแแแแแแแ I/O แแแแแแแแแแก แแแ แแจแ. แแแแ แแ แแก แแแฎแกแแแ แแแแจแ แฉแแขแแแ แแแ แแฎแแแแ แแก แแแฌแแแแแ, แ แแแแแแแช แแแแแแแ แแฃแจแแแแแแ. แแก แแแแจแแแแแแแแแแ, แ แแแแกแแช แกแแญแแ แแ แแ แแแแ แแแแแแแแขแแแแ แชแฎแ แแแแก แแแฎแแ แแกแฎแแแ แแฎแแแแ 100 แแแแแแแแขแแแแ แแแฎแกแแแ แแแแก แแฃแคแแ แแ.
แจแแแแจแแแ: แแ แขแแแแก แแแแแ แแแแ แ.แฌ
- แแฅแแแ แจแแแแซแแแแ แจแแชแแแแแ แแก, แ แแ แแแฃแจแแแก แแ แแแแ แแ แแชแแกแแ / แแแแแจแ / แกแแ แแแ แแ.
แแแแแแแแแ, แแแแแฌแแแแแฃแแ แจแแ แฌแงแแแก แแแแแแแแ แแ แ-แแ แแ แแแแแแ แ แแแแแแแแแขแแ
- แแ แแแแแ แแแแก แจแแฃแซแแแ แขแงแแแแก แแฅแ แแ แแแแแฅแชแแแ (แแแแแแแแแ!).
แแก แแแฎแแ แแกแฎแแแแก แแแแแ แแแแ แแแแแแงแแแแแ แฃแแแขแแก (แแฃ แแ แ แงแแแแ) แแแแแชแแแแ แแแแแจแ, แแแแ แแ แแก แแ แแ แแก แแ แแแแแ แแ. แแฃ แแกแฃแ แ แแแขแ แแชแแแแ, แจแแแแซแแแแ แฌแแแแแแฎแแ แแก
แแแกแแแ, แฎแ แแ แฐแแจ แชแฎแ แแแ
แแฎแแ, แ แแแแกแแช แฉแแแ แแแแกแแแก แแ แแแก แกแแ แแฃแแแก แแ แแแฎแแ แแกแฎแแแแก แแแแ, แฃแแแ แแแแฎแ แแ แแแแแชแแแแ 3 แกแขแ แฃแฅแขแฃแ แแก แจแแกแแฎแแ. แแก แแแแจแแแแแแแแแแ, แ แแแแแ แแกแแแ แแแแแแแแ แแแ แแแแแชแแแแ แแแแแแแก แกแแคแฃแซแแแแแ. แแแช แแแแแชแแแ แแแแชแแคแชแแแก แแแแแชแแแแ แแแแแก แแแแแฅแกแ.
Array
แแ แแแแแแแแแแแแแแ แแแกแแแ แแ แแก แแแแแชแแแแ แฃแแแ แขแแแแกแ แกแขแ แฃแฅแขแฃแ แ. แชแฎแ แแแ แจแแแซแแแแ แฉแแแแแแแแก แแแกแแแแ. แฒแแแแแแแแ:
แแก 2 แแแแแแแแแแแแแแ แแแกแแแ แแ แแก แชแฎแ แแแ แ แแแแแแ แแ แกแแแขแแแแ:
- แแแแแแฃแแ แฎแแแ แฌแแ แแแแแแแแก แแ แแแฃแแก
- แกแแแขแแแ แแแแฎแแแก แแแแกแแแแแก, แ แแแแแแแช แแฆแฌแแ แก แแ แแแฃแแก.
- แแแแแแฃแแ แกแแแขแ แแแแฎแแแก แแแแแ แแขแฃแแ แขแแแแก แแแแแชแแแแแก (แแแแแแแ, แกแขแ แแฅแแแ, แแแ แแฆแ...).
แแก แแแกแแฎแแ แฎแแแแแแ แแแแแชแแแแแแก แจแแกแแแแฎแแ แแ แแแแฃแแแแแแชแแแกแแแแก, แแฃแแชแ, แ แแแแกแแช แกแแญแแ แแ แแแแแ แแขแฃแแ แแแแจแแแแแแแแก แแแแแ, แแก แแ แแ แแก แจแแกแแคแแ แแกแ.
แแแแแแแแแ, แแฃ แแแแแแแแ แแแแแแ แงแแแแ แแแญแ, แ แแแแแแช แแฃแจแแแแก แแแ แแ แแขแแแแแจแ, แแฅแแแ แฃแแแ แแแแแฎแแแแ แแแแแแฃแ แ แแแก, แ แแแ แแแแแแแแแก, แแแฃแแแแแก แแฃ แแ แ แแก แ แแแ แแแแ แแแแแแแฃแ แกแแแแคแแก. N แขแ แแแแแฅแชแแ แแแแแฏแแแแแแกแแ N - แฎแแแแแแก แ แแแแแแแแ, แ แแช แแ แแ แแก แชแฃแแ, แแแแ แแ แจแแแซแแแแ แแ แกแแแแแแแก แฃแคแ แ แกแฌแ แแคแ แแแ? แแฎแแ แแ แแ แแแแแชแแแ แฎแแแแก.
แจแแแแจแแแ: แแแแแแแแ แแแ แแแแแชแแแแ แแแแแแแก แฃแแแขแแกแแแ แแแแแแแแแ แแแคแแ แแแแแฃแ แแแกแแแแแก แชแฎแ แแแแแแก แแคแแฅแขแฃแ แแ แจแแกแแแแฎแแ: heap-แแ แแแแแแแแฃแแ แชแฎแ แแแแแ แแ แแแแแฅแกแแ แแ แแแแแแแแฃแแ แชแฎแ แแแแแ. แแแแ แแ แแก แแ แชแแแแก แกแแแขแแแแก แฏแแฃแคแจแ แแแแแ แแขแฃแแ แแแแแแแ แแแแแก แกแฌแ แแคแแ แแแแแแก แแ แแแแแแแก.
แแแแแชแแแแ แแแแแก แฎแ แแ แแแแแฅแกแ
แแ แแแแแ แกแแซแแแแ แฎแ แแ แแก แแ แแแแแ แฎแ แกแแแชแแแแฃแ แ แแแแกแแแแ, แแแกแแฆแแแ แแแแแแฃแ แแแแแซแจแ แฃแแแ แแงแแก:
- แแแ แชแฎแแแ แฅแแแฎแแจแ แจแแแแฎแฃแ แงแแแแ แแแแแแจแแ แแแขแ
- แแแแแแแแ, แแแแ แ แงแแแแ แแแกแแฆแแแ, แ แแแแแแช แแแแฎแแแ แแแ แฏแแแแ แฅแแแฎแแจแ
แแแแฎแแ แ แแก แแแจแแแแก แแก แแแแฃแแแฃแ แแ
แแแแ
แแ แฎแแก แแฅแแก 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-แแก แชแแแแ แกแแจแฃแแแแแแก แแแซแแแแก แแฃแกแขแแ แแแชแแแ, แกแแ แแ แแก แแแแแชแแแแแ แชแฎแ แแแจแ, แแกแ แ แแ แจแแแแซแแแ แแแแแแขแแแฃแ แแ แแแแแซแแ.
แกแแแแแแ แฏแแแจแ, แแ แแแ แซแแแแ แแแแแฏแแแแ แฎแแก แจแแแแแ แแแแแแแแก แ แแแแแแแแ. แแฃ แงแฃแ แแแฆแแแแ แฌแแแแแแฎแแแ แแแฌแแแก แจแแ แฌแงแแแก แแแแแแแแแก แจแแกแแฎแแ, แฃแแแ แแแแแแฎแแ, แ แแ แแ แกแแแแแก log(N) แแแแแแแ. แแฃแ แแ, แกแแซแแแแ แฎแแ แฏแแแแก แแฃแ แแแแ (N), แชแฃแแ แแ แแ!
แแแแฃแแ แฃแแแแ แฉแแแแก แแ แแแแแแแก
แแแแ แแ แแก แซแแแแแ แแแกแขแ แแฅแขแฃแแแ, แแแแขแแ แแแแฃแแ แฃแแแแ แฉแแแแก แแ แแแแแแแก. แแแ แขแแแ แแแแแ แ แแชแฎแแแก แแแชแแแแ, แฌแแ แแแแแแแแแ แกแขแ แแฅแแแ, แ แแแแแแช แฌแแ แแแแแแแแก แแแแแแก แฅแแแงแแแแก แฌแแแ แชแฎแ แแแจแ. แแแฅแแแ, แแแฅแแ แฎแ, แ แแแแแแช แจแแแชแแแก แชแฎแ แแแแก "แฅแแแงแแแ" แแแแก (แกแแแขแ 3):
- แแฃ แแกแฃแ แ แแชแแแแ แแแ แแฃแจแแแแก แแแ แแ แแขแแแแแจแ
- แแฅแแแ แฃแงแฃแ แแแ แฎแแก, แ แแ แแแแฆแแ แแแแแซแ, แ แแแแแแช แฌแแ แแแแแแแแก แแแ แแ แแขแแแแแก
- "UKnode"-แจแ แแแฎแแแ แแแแ แแแแแแแฃแแ แกแแแแคแแก แแฃแจแแแแ แฉแแแแฌแแ แแแแก แแแแแแแแแแแ แแแแแก.
แแก แซแแแแ แแฆแแ แแแ log(N) แแแแ แแชแแแแ N แแแแ แแชแแแแแก แแแชแแแแ, แแฃ แแฅแแแ แแงแแแแแ แแแกแแแก แแแ แแแแแ . แ แแช แแฎแแ แฌแแ แแแแแแแแแ แแงแ แแแแแชแแแแ แแแแแก แแแแแฅแกแ.
แแฅแแแ แจแแแแซแแแแ แจแแฅแแแแ แแแแแฅแกแแก แฎแ แแแแแแแก แแแแแกแแแแ แ แฏแแฃแคแแกแแแแก (แกแขแ แแฅแแแ, แ แแชแฎแแ, 2 แกแขแ แแฅแแแ, แ แแชแฎแแ แแ แกแขแ แแฅแแแ, แแแ แแฆแ...), แแฃ แแฅแแแ แแแฅแแ แแแแแแจแแแแก แจแแแแ แแแแก แคแฃแแฅแชแแ (แแแฃ แแแแแแแก แฏแแฃแคแแแ), แแกแ แ แแ แแฅแแแ แจแแแแซแแแแ แแแแงแแแแ แจแแแแแแ แแแกแแฆแแแแแก แจแแ แแก (แ แแช แแฎแแแ แแแแแชแแแแ แแแแแจแ แแ แกแแแฃแ แแแแแกแแแแ แซแแ แแแแ แขแแแก).
B+TreeIndex
แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแก แฎแ แแแ แแแ แแฃแจแแแแก แแแแแ แแขแฃแแ แแแแจแแแแแแแแก แแแกแแฆแแแแ, แแ แแก แแแแ แแ แแแแแแ, แ แแแแกแแช แแญแแ แแแแแ แแแแฆแแ แแ แแแแแ แแแแแแแขแ แแ แแแแจแแแแแแแแก แจแแ แแก. แแก แแฆแแ แแแ O(N), แ แแแแแ แแฅแแแ แแแแแฌแแแ แฎแแก แแแแแแฃแ แแแแแซแจแ แแแแแแแแแ แแแ แแ แจแแแแแฌแแแ แแ แแก แแฃ แแ แ แแก แแ แแ แแแแจแแแแแแแแก แจแแ แแก (แแแ. แฎแแก แแแฌแแกแ แแแแแฃแแ แแแแแแแแแแ). แฃแคแ แ แแแขแแช, แแก แแแแ แแชแแ แแ แแ แแก แแแกแแแก I/O แแแแแแ แฃแแ, แ แแแแแ แแฅแแแ แฃแแแ แฌแแแแแแฎแแ แแแแแ แฎแ. แฉแแแ แฃแแแ แแแแแแแ แแคแแฅแขแฃแ แ แแแแฎแแ แชแแแแแแแก แแแ แแแแแแแแแแก แแแแฎแแแแ. แแ แแ แแแแแแแก แแแแแกแแญแ แแแแ แแแแแแแแ แแแ แแแแแชแแแแ แแแแแแ แแงแแแแแแ แฌแแแ แฎแแก แจแแชแแแแ แแแ แกแแแก, แกแแฎแแแฌแแแแแแ B+Tree. B+Tree แฎแแจแ:
- แแฎแแแแ แงแแแแแแ แแแแแแ แแแแแซแแแ (แคแแแแแแ) แแแคแแ แแแชแแแก แจแแแแฎแแ (แกแขแ แแฅแแแแแแก แแแแแแ แแแแ แจแแกแแแแแแก แชแฎแ แแแจแ)
- แแแแแ แฉแแแ แแแแแซแแแ แแฅ แแ แแก แแแ แจแ แฃแขแแแแชแแแกแแแแก แกแฌแแ แแแแแซแแแแ แซแแแแแก แแ แแก.
แ แแแแ แช แฎแแแแแ, แแฅ แฃแคแ แ แแแขแ แแแแแซแแ (แแ แฏแแ ). แแแ แแแแช, แแฅแแแ แแแฅแแ แแแแแขแแแแแ แแแแแซแแแ, "แแแแแฌแงแแแขแแแแแแก แแแแแซแแแ", แ แแแแแแแช แแแแแฎแแแ แแแแ แแแแแแ แกแฌแแ แ แแแแแซแ (แ แแแแแแช แแแแฎแแแก แ แแแแแแก แแแแแแ แแแแแก แแกแแชแแ แแแฃแ แชแฎแ แแแจแ). แแแแ แแ แซแแแแแก แกแแ แแฃแแ แแแแแช แแ แแก O(log(N)) (แแ แกแแแแแก แแแแแ แแ แแ แแแแ). แแแแ แแแแกแฎแแแแแแ แแกแแ แฅแแแแ แแแแแแ แแแแแซแแแ แแแแแแจแแ แแแฃแแแ แแแ แแแแแแแแ แแแแแแ.
แแ B+Tree-แแ, แแฃ แแซแแแ แแแแจแแแแแแแแแก 40-แแแ 100-แแแ:
- แแฅแแแ แฃแแ แแแแ แฃแแแ แแแซแแแแแ 40 (แแ แฃแแฎแแแแกแ แแแแจแแแแแแแ 40-แแก แจแแแแแ, แแฃ 40 แแ แแ แกแแแแแก), แ แแแแ แช แแก แแแแแแแแ แฌแแแ แฎแแแ.
- แจแแแแแ แจแแแแ แแแแ 40 แแแแแแแแ แ แแแ แแแแแ แ แแแแแแแแ แ แแแฃแแแแแก แแแแแงแแแแแแ, แกแแแแ แแ แแแแฆแฌแแแ 100-แก.
แแแฅแแแ, แแฅแแแ แแแแแแ M แแแแแแแแ แแแแก แแ แฎแแก แแฅแแก N แแแแแซแ. แแแแแ แแขแฃแแ แแแแแซแแก แแแแแ แฆแแ แก log(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+ แฎแ แแแแแแแแ แฃแแแ แแงแแก แแแแแแแแกแแแฃแแ.
แฐแแจแขแแแ
แฉแแแแ แแแแ แแแแจแแแแแแแแแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แ แแ แแก แฐแแจแแก แชแฎแ แแแ. แแก แซแแแแแ แกแแกแแ แแแแแแ, แ แแแแกแแช แแกแฃแ แ แกแฌแ แแคแแ แแแซแแแแแ แแแแจแแแแแแแแแ. แฃแคแ แ แแแขแแช, แฐแแจแแก แชแฎแ แแแแก แแแแแแ แแแแแแฎแแแ แแแ แแแแแแแแแแแ แแแแแแแ แแแแแชแแแแ แแแแแก แจแแแ แแแแแก แกแแแ แแ แแแแ แแชแแ, แ แแแแแกแแช แแฌแแแแแ แฐแแจแแก แจแแแ แแแแ ( แฐแแจแ แจแแแ แแแแ). แแแแแชแแแแ แแ แกแขแ แฃแฅแขแฃแ แแก แแกแแแ แแงแแแแแก แแแแแชแแแแ แแแแ แแแแแแ แแ แจแแแ แแแแแแแแก แจแแกแแแแฎแแ (แแแ. แกแแแแขแ แแแแแแ แแ แแฃแคแแ แฃแแ แแฃแแแแ แแแ แแ แแแแชแแคแชแแแก แแแแแแแแแแแ แแแฎแแแแแ).
แฐแแจแแก แชแฎแ แแแ แแ แแก แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แ, แ แแแแแแช แกแฌแ แแคแแ แแแฃแแแแก แแแแแแแขแก แแแกแ แแแกแแฆแแแแ. แฐแแจแแก แชแฎแ แแแแก แแกแแแแแแ แแฅแแแ แฃแแแ แแแแกแแแฆแแ แแ:
- แแแฎแแ แแฅแแแแ แแแแแแแขแแแแกแแแแก
- แฐแแจแแก แคแฃแแฅแชแแ แแแกแแฆแแแแแแกแแแแก. แแแกแแฆแแแแก แแแแแแแแแแ แฐแแจแแแ แแซแแแแ แแแแแแแขแแแแก แแแแแแ แแแแแก (แ.แฌ แกแแแแแแขแแแ ).
- แแแกแแฆแแแแแแก แจแแแแ แแแแก แคแฃแแฅแชแแ. แแแก แจแแแแแ แ แแช แแแแแแแ แกแฌแแ แ แกแแแแแแขแ, แแฅแแแ แฃแแแ แแแแแแ แแแแแแแขแ, แ แแแแแกแแช แแซแแแ แกแแแแแแขแจแ แแ แจแแแแ แแแแก แแแแแงแแแแแแ.
แแแ แขแแแ แแแแแแแแ
แแแแฆแแ แแแแแแ แแแแแแแแ:
แแ แฐแแจแแก แชแฎแ แแแก แแฅแแก 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).
แแแกแแแ แฐแแจแแก แชแฎแ แแแแก แฌแแแแแฆแแแแ
แ แแขแแ แแ แแแแแแงแแแแ แแแกแแแ?
แฐแ, แแแ แแ แแแแฎแแแ.
- แฐแแจแแก แชแฎแ แแแ แจแแแซแแแแ แแงแแก แแแฌแแแแแ แแ แแแขแแแ แแฃแแแ แแแฎแกแแแ แแแแจแแแ แแแ แฉแแแแแ แกแแแแแแขแแแ แจแแแซแแแแ แแแ แฉแแก แแแกแแแ.
- แแแกแแแแก แกแแจแฃแแแแแแ แแฅแแแ แฃแแแ แแแแแแงแแแแ แแแแแแแแ แ แกแแแ แชแ แแแฎแกแแแ แแแแจแ. แแฃ แแขแแแ แแแแ แแแ แแแแแแแก แซแแแแแ แ แแฃแแแ แกแแแแแ แแกแ แฃแฌแงแแแขแ แกแแแ แชแแก แแแแแ.
- แฐแแจแแก แชแฎแ แแแแกแแแแก แจแแแแซแแแแ แแแ แฉแแแ แแฅแแแแแแแก แกแแกแฃแ แแแแ แแแกแแฆแแแ (แแแแแแแแแ, แฅแแแงแแแ แแ แแแ แแก แแแแ แ).
แแแแแขแแแแแ แแแคแแ แแแชแแแกแแแแก แจแแแแซแแแแ แฌแแแแแแฎแแ แกแขแแขแแ
แฌแงแแ แ: www.habr.com