ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² Python Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π° Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ Β«Π·Π°Π΄ΡΠΌΡΠΈΠ²ΠΎΒ» ΡΠ°Π±ΠΎΡΠ°ΡΡ? ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ Π±ΡΡΡΡΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Python!
ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π²Π·ΡΡ ΠΈΠ· Π½Π°ΡΠ΅ΠΉ ΡΡΠ±Π±ΠΎΡΠ½Π΅ΠΉ email-ΡΠ°ΡΡΡΠ»ΠΊΠΈ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ Python. ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π² ΡΠΈΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΡΡ , ΠΊΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ.
(function () { let link = document .getElementById ("1535ba42-09a6-4ed2-b2e5-f1c0d18402a1-https://proglib.io/w/edaee37b-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { method: "POST", body: data }) .then (function (res) {}) .catch (function (err) { console .error (err); }); }) })();
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° β ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ½Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ΅Π½ΠΈΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ , ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· 10 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π½Π°ΠΉΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π΅ΡΡΡ Π»ΠΈ ΡΠ°ΠΌ Π½ΡΠΆΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ· 10 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠΎ Π·Π°ΠΉΠΌΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 100 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²? ΠΠ»ΠΈ ΠΈΠ· 1000? 1000000? ΠΠ»Π³ΠΎΡΠΈΡΠΌ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π²Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΠΏΠΈΡΠ°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π² ΡΠΏΠΈΡΠΊΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ O(n), Π³Π΄Π΅ n β ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°ΡΡΠ΅Ρ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΈΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ:
- O(1) β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΌΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ: len(list) β ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ°.
- O(n) β Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ: ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° in (item in some_list) ΡΡΠ΅Π±ΡΠ΅Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΏΠΈΡΠΊΠ°.
- O(n^2) β ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ΅Π½Ρ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π³Π΄Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΠ΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ: Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ ΠΏΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅.
- O(n log n) β Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΡΠ΅ΠΌ O(n^2), Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ O(n). ΠΡΠΈΠΌΠ΅Ρ: Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ sorted(list).
- O(log n) β Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ-Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠ΅Ρ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ: Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅.
ΠΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ: O(n^3), O(n^2 log n), O(2^n) ΠΈ Ρ.Π΄. Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ΅ΠΆΠ΅.
Π’ΡΠ΅ΠΉ Π₯Π°Π½Π½Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉΡΡΡ ΡΡΠ°ΡΡΡ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Python. ΠΠ²ΡΠΎΡ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ°Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ β Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ, Π° Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΏΠΈΡΠΊΠ° β ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ΠΎ ΡΠ΄Π²ΠΈΠ½ΡΡΡ Π²ΠΏΡΠ°Π²ΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ). ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈΠ· ΡΡΠ°ΡΡΠΈ:
Π‘ΠΏΠΈΡΠΎΠΊ (List)
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ (sequence[index]) β O(1)
- ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ (sequence[index] = value) β O(1)
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠΏΠΈΡΠΊΠ° (sequence.append(item)) β O(1)
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΡΠ° ΡΠΏΠΈΡΠΊΠ° (sequence.pop()) β O(1)
- ΠΡΡΠ°Π²ΠΊΠ° Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ° (sequence.insert(0, item)) β O(n)
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π°ΡΠ°Π»Π° ΡΠΏΠΈΡΠΊΠ° (sequence.pop(0)) β O(n)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (item in sequence) β O(n)
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ ΡΠΏΠΈΡΠΊΠ° (len(sequence)) β O(1)
ΠΠ²ΡΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ (Deque)
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ (queue.append(item)) β O(1)
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΡΠ° (queue.pop()) β O(1)
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎ (queue.appendleft(item)) β O(1)
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ Π½Π°ΡΠ°Π»Π° (queue.popleft()) β O(1)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (item in queue) β O(n)
Π‘Π»ΠΎΠ²Π°ΡΡ (Dict)
- ΠΠΎΡΡΡΠΏ ΠΏΠΎ ΠΊΠ»ΡΡΡ (mapping[key]) β O(1)
- ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΡ (mapping[key] = value) β O(1)
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΡ (mapping.pop(key)) β O(1)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ ΠΊΠ»ΡΡΠ° (key in mapping) β O(1)
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠ»ΡΡΡ (mapping.get(key)) β O(1)
- ΠΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠ°ΡΠ΅ ΠΊΠ»ΡΡβΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (for k, v in mapping.items()) β O(n)
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ (Set)
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (my_set.add(item)) β O(1)
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (my_set.remove(item)) β O(1)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (item in my_set) β O(1)
- ΠΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (for item in my_set) β O(n)
ΠΡΡΠ° (Heap)
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΡΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° (heapq.heapify(sequence)) β O(n)
- ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ° (heapq.heappop(sequence)) β O(log n)
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (heapq.heappush(sequence, item)) β O(log n)
- ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ (bisect):
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ (bisect.bisect(sorted_seq, item)) β O(log n)
- ΠΡΡΠ°Π²ΠΊΠ° Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (bisect.insort(sorted_seq, item)) β O(n)
***
ΠΠ° ΠΊΡΡΡΠ΅ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Β» Π½Π°ΡΠΈ ΠΎΠΏΡΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΡΠ°ΡΠΏΡΡΠ°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·Π»Ρ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π²ΠΎΡΠ°ΠΆΠΈΠ²Π°ΡΡΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΡΡΡΠ°
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²
- Π Π°Π±ΠΎΡΠ° Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ
- ΠΠ°ΡΡΠΈΠ²Ρ
- ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ Π½Π° ΠΌΠ°ΡΡΠΈΠ²Π°Ρ
- Π‘ΠΏΠΈΡΠΊΠΈ. Π‘ΡΠ΅ΠΊ, ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π΅ΠΊ
- ΠΡΠ΅ΡΠ΅Π΄Ρ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ
- ΠΡΠ½ΠΎΠ²Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
- ΠΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ
- ΠΠ΅ΡΠ΅Π²ΡΡ
- Π₯Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ
- ΠΠ°Π΄Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΡΠ°ΡΡ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΡ
- Π‘ΡΡΠΎΠΊΠΈ
- ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ
- ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΡΠΈΡΠ»Π°
π ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Ρ ΠΎΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ
(function () { let link = document .getElementById ("1535ba42-09a6-4ed2-b2e5-f1c0d18402a1-https://proglib.io/w/74add25d-26"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { method: "POST", body: data }) .then (function (res) {}) .catch (function (err) { console .error (err); }); }) })();