Число инвСрсий: Число инвСрсий — Π—Π°Π΄Π°Ρ‡ΠΈ — Eolymp

ASSORTI — ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° — Π—Π°Π΄Π°Ρ‡ΠΈ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π°Π»Π³Π΅Π±Ρ€Π΅. Выпуск 1. Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π°Π»Π³Π΅Π±Ρ€Π΅. Выпуск 2.
Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Выпуск 1.

Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π°Π»Π³Π΅Π±Ρ€Π΅. Выпуск 1.

Β 

1. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

.

Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ опрСдСлитСля 2-Π³ΠΎ порядка

.

Β 

2. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ опрСдСлСниями, Ρ€Π΅ΡˆΠΈΡ‚ΡŒ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅:

.

НайдСм ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠ· коэффициСнтов систСмы:

.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ нуля, поэтому ΠΊ систСмС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠšΡ€Π°ΠΌΠ΅Ρ€Π° согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСизвСстных опрСдСляСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ:

, ,

Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ получаСтся ΠΈΠ· опрСдСлитСля Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ столбца столбцом свободных Ρ‡Π»Π΅Π½ΠΎΠ² систСмы:

,

Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

получаСтся ΠΈΠ· опрСдСлитСля Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ столбца столбцом свободных Ρ‡Π»Π΅Π½ΠΎΠ² систСмы:

.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,

, .

Β 

3. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ 3-Π³ΠΎ порядка:

.

Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ опрСдСлитСля 3-Π³ΠΎ порядка:

.

Β 

4. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ опрСдСлитСлями, Ρ€Π΅ΡˆΠΈΡ‚ΡŒ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ:

НайдСм ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠ· коэффициСнтов систСмы:

.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ нуля, поэтому ΠΊ систСмС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠšΡ€Π°ΠΌΠ΅Ρ€Π° согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСизвСстных опрСдСляСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ:

, , ,

Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ получаСтся ΠΈΠ· опрСдСлитСля Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ столбца столбцом свободных Ρ‡Π»Π΅Π½ΠΎΠ² систСмы:

,

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ получаСтся ΠΈΠ· опрСдСлитСля

Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ столбца столбцом свободных Ρ‡Π»Π΅Π½ΠΎΠ² систСмы:

,

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ получаСтся ΠΈΠ· опрСдСлитСля Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ столбца столбцом свободных Ρ‡Π»Π΅Π½ΠΎΠ² систСмы:

.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,

, , .

Β 

5. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ число инвСрсий Π² пСрСстановкС 2, 3, 5, 4, 1.

Π˜Π½Π²Π΅Ρ€ΡΠΈΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ чисСл

(2,1), (3,1), (5,1), (5,4), (4,1).

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число инвСрсий Π² Π΄Π°Π½Π½ΠΎΠΉ пСрСстановкС Ρ€Π°Π²Π½ΠΎ 5.

Β 

6. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ число инвСрсий Π² пСрСстановкС 1, 3, 5, 7,…,2n-1, 2, 4, 6, 8,…, 2n.

Число 1 Π½Π΅ ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ инвСрсий.

Число 3 ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ 1 ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ с 2.

Число 5 ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ 2 ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ с 2 ΠΈ 4.

Число7 ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ 3 ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ с 2, 4 ΠΈ 6.

Число 2n-1 ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ n-1 ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ с 2, 4, 6, … , 2n-2.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число всСх инвСрсий Π² Π΄Π°Π½Π½ΠΎΠΉ пСрСстановки Ρ€Π°Π²Π½ΠΎ

.

Β 

7. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ сначала ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСобразования:

  1. ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΡƒΡŽ,
  2. ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкС ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-2),
  3. ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΡƒΡŽ, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-1).

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ

.

Π Π°Π·Π»ΠΎΠΆΠΈΠΌ этот ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ столбцу, содСрТащий лишь ΠΎΠ΄ΠΈΠ½ Π½Π΅ Ρ€Π°Π²Π½Ρ‹ΠΉ Π½ΡƒΠ»ΡŽ элСмСнт, располоТСнный Π½Π° пСрСсСчСнии 1-ΠΎΠΉ строки ΠΈ 3-Π³ΠΎ столбца, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ

.

Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ опрСдСлитСля 3-Π³ΠΎ порядка ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

Β 

8. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠΎΠΉ Лапласа Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ:

.

Π Π°Π·Π»ΠΎΠΆΠΈΠΌ Π΅Π³ΠΎ ΠΏΠΎ 2-ΠΎΠΉ ΠΈ 4-ΠΎΠΉ строкам, содСрТащим лишь ΠΎΠ΄ΠΈΠ½ Π½Π΅ Ρ€Π°Π²Π½Ρ‹ΠΉ Π½ΡƒΠ»ΡŽ ΠΌΠΈΠ½ΠΎΡ€

,

элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стоят Π½Π° пСрСсСчСнии 2-ΠΎΠΉ, 4-ΠΎΠΉ строк ΠΈ 1-Π³ΠΎ, 4-Π³ΠΎ столбцов, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

9. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠΎΠΉ Лапласа Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ:

.

Π Π°Π·Π»ΠΎΠΆΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ 3-ΠΌΡƒ ΠΈ 5-ΠΌΡƒ столбцу, содСрТащих Ρ‚Ρ€ΠΈ Π½Π΅ Ρ€Π°Π²Π½Ρ‹Ρ… ΠΌΠΈΠ½ΠΎΡ€Π°:

ΠΌΠΈΠ½ΠΎΡ€

,

элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стоят Π½Π° пСрСсСчСнии 3-Π³ΠΎ, 5-Π³ΠΎ столбцов ΠΈ 1-ΠΎΠΉ, 3-Π΅ΠΉ строк;

ΠΌΠΈΠ½ΠΎΡ€

,

элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стоят Π½Π° пСрСсСчСнии 3-Π³ΠΎ, 5-Π³ΠΎ столбцов ΠΈ 1-ΠΎΠΉ, 4-ΠΎΠΉ строк;

ΠΌΠΈΠ½ΠΎΡ€

,

элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стоят Π½Π° пСрСсСчСнии 3-Π³ΠΎ, 5-Π³ΠΎ столбцов ΠΈ 3-Π΅ΠΉ, 4-ΠΎΠΉ строк.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

Β 

10.Π Π΅ΡˆΠΈΡ‚ΡŒ систСму ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ нСизвСстных:

.

Рассмотрим Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ систСмы:

.

ПомСняСм мСстами 1-ΡƒΡŽ ΠΈ 3-юю строки, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊΠΎ 2-ΠΎΠΉ строкС 1-ΡƒΡŽ, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-2),

ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 3-Π΅ΠΉ строкС 1-ΡƒΡŽ, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-3),

ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 4-ΠΎΠΉ строкС 1-ΡƒΡŽ, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-1), ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊΠΎ 2-ΠΎΠΉ строкС 3-ю строку, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-1) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 3-Π΅ΠΉ строкС 2-ю строку, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° 8, ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 4-ΠΎΠΉ строкС 2-ю, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° 3, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ

.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 3-Π΅ΠΉ строкС 4-ю строку, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-3) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 4-ΠΎΠΉ строкС 3-ю строку, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° (-14) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ

.

Π£ΠΌΠ½ΠΎΠΆΠΈΠΌ 4-ю строку Π½Π° , ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 3-Π΅ΠΉ строкС 4-ю строку, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° 26, ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ 1-ΠΎΠΉ 4-ΡƒΡŽ, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° 4,

ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

~~.

Β 

11. НайдСм Ρ€Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ окаймлСния ΠΌΠΈΠ½ΠΎΡ€Π°:

.

ΠœΠΈΠ½ΠΎΡ€, Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ порядка, стоящСм Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ:

.

Однако Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ содСрТится ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ нуля ΠΌΠΈΠ½ΠΎΡ€ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ порядка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

.

ВсС ΠΌΠΈΠ½ΠΎΡ€Ρ‹ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ порядка, ΠΎΠΊΠ°ΠΉΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠΈΠ½ΠΎΡ€ d, Ρ€Π°Π²Π½Ρ‹ 0:

, , .

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ 2.

Β 

12. Π’Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ систСма Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ зависимой ΠΈΠ»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ нСзависимой: , , , .

Боставим ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° слуТат столбцами (строками) ΠΈ вычислим Ρ€Π°Π½Π³ этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π½Π³ Ρ€Π°Π²Π΅Π½ 4

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, всС 4 Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π΄Π°Π½Π½ΠΎΠΉ систСмы Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ нСзависимы.

Β 

НОУ ИНВУИВ | ЛСкция | ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ, пСрСстановки

< ЛСкция 10 || ЛСкция 10: 1234

Аннотация: Π’ Π΄Π°Π½Π½ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ подстановки ΠΈ пСрСстановки. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ основныС опрСдСлСния, рассмотрСна транспозиция, Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ подстановок Π² ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠ² с Π½Π΅ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΎΡ€Π±ΠΈΡ‚Π°ΠΌΠΈ. РассмотрСн ряд Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π΄ΠΎΠΊΠ°Π·Π°Π½Ρ‹ основныС Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π·Π°Π΄Π°Ρ‡ΠΈ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова: Π³Ρ€ΡƒΠΏΠΏΠ°, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏΠ°, ΠΌΠΎΠ½ΠΎΠΈΠ΄, Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, подстановка, мноТСства, пСрСстановка, ΠΎΡ€Π±ΠΈΡ‚Π° Ρ†ΠΈΠΊΠ»Π°, Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° классы сопряТСнных элСмСнтов, инвСрсия, Π³ΠΎΠΌΠΎΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π³Ρ€ΡƒΠΏΠΏ

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ, пСрСстановки

Π’Π΅ΠΎΡ€Π΅ΠΌΠ° 5.0.4. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ S(U) всСх Π±ΠΈΠ΅ΠΊΡ†ΠΈΠΉ

с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ произвСдСния (ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ gf для , , ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами:

  1. intuit.ru/2010/edi»>опСрация произвСдСния ассоциативна ( h(gf)=(hg)f для всСх ),
  2. Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом для этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся тоТдСствСнноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1
    U
    ( 1Uf=f=f1U для всСх ),
  3. для всякой Π±ΠΈΠ΅ΠΊΡ†ΠΈΠΈ сущСствуСт ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ элСмСнт — биСкция g=f-1 ( fg=1U=gf ).

(Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, S(U) — Π³Ρ€ΡƒΠΏΠΏΠ° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ произвСдСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ; S(U) — ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠΎΠ½ΠΎΠΈΠ΄Π° T(U): .)

Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. слСдуСт ΠΈΠ· Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹ 1.6.4 ΠΈ Π»Π΅ΠΌΠΌΡ‹ 1.8.4.

Π‘ΠΈΠ΅ΠΊΡ†ΠΈΠΈ мноТСства U часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ подстановками . НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΉ для нас случай U={1,2,…,n}, Π² этом случаС Π³Ρ€ΡƒΠΏΠΏΡƒ Sn = S({1,2,…,n}) Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ подстановок мноТСства {1,2,…,n} ΠΈΠ· n элСмСнтов (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ симмСтричСской Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ).

Π—Π°ΠΏΠΈΡΡŒ подстановок. ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ

Если — подстановка, Ρ‚ΠΎ рассмотрим Π΅Π΅ ΠΊΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ запись

Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ строчкС (f(1), f(2),…, f(n)), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ f — биСкция, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ всС элСмСнты i, , ΠΏΡ€ΠΈ этом Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π°Π·Ρƒ. Π’Π°ΠΊΠΈΠ΅ строчки элСмСнтов (i1,…,in), , Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт i_j, , встрСчаСтся ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ пСрСстановками элСмСнтов 1,2,…,n .

Π›Π΅ΠΌΠΌΠ° 5.1.1. Число всСх пСрСстановок (i1,…,in) ΠΈΠ· n элСмСнтов Ρ€Π°Π²Π½ΠΎ .

Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. Для i1 ΠΈΠΌΠ΅Π΅ΠΌ n возмоТностСй. ΠŸΡ€ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ i1 для i2 ΠΈΠΌΠ΅Π΅ΠΌ (n-1) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… пСрСстановок Ρ€Π°Π²Π½ΠΎ !.

Π›Π΅ΠΌΠΌΠ° 5.1.2. Число Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… подстановок мноТСства {1,2,…,n} Ρ€Π°Π²Π½ΠΎ n! (Ρ‚. Π΅. | S_n|=n!).

Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. Для рассмотрим ΠΊΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ запись

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… подстановок ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅, сколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… пСрСстановок n элСмСнтов, Ρ‚. Π΅. n!.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ записи подстановки , располагая Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строчкС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ пСрСстановку (i1,i2,…,in):

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5.1.3

  1. Для тоТдСствСнной подстановки Π² S2 ΠΈΠΌΠ΅Π΅ΠΌ Для Π±ΠΈΠ΅ΠΊΡ†ΠΈΠΈ , f(1)=2, f(2)=1, ΠΈΠΌΠ΅Π΅ΠΌ
  2. Если Ρ‚ΠΎ
  3. Π’Π°ΠΊ ΠΊΠ°ΠΊ , Ρ‚ΠΎ Π’ частности,
  4. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· (i1 i2… ir) Ρ†ΠΈΠΊΠ» Π΄Π»ΠΈΠ½Ρ‹ r Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ подстановок S
    n
    : подстановку, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΡΡ‰ΡƒΡŽ ik Π² ik+1 для , ir Π² i1, ΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ всС элСмСнты ΠΈΠ· {1,2,. ..,n}, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ i1,…,ir, Π½Π° мСстС. Π’ΠΎΠ³Π΄Π° Π² S3 ΠΈΠΌΠ΅Π΅ΠΌ ΡˆΠ΅ΡΡ‚ΡŒ подстановок: ΠŸΡ€ΠΈ этом Π² Sn для ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π³Ρ€ΡƒΠΏΠΏΠ° S3 ΠΈ любая Π³Ρ€ΡƒΠΏΠΏΠ° Sn ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹. Π’Π°ΠΊ ΠΊΠ°ΠΊ S1={e} ΠΈ S2={e, (1 2)} — ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΠ° Sn ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Π° Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° n=1 ΠΈΠ»ΠΈ n=2.

Π”Π°Π»ΡŒΡˆΠ΅ >>

< ЛСкция 10 || ЛСкция 10: 1234

Алгоритм

— подсчСт инвСрсий Π² массивС

Π­Ρ‚ΠΎΡ‚ ΠΎΡ‚Π²Π΅Ρ‚ содСрТит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов timeit , созданных ΠΊΠΎΠ΄ΠΎΠΌ Π² ΠΌΠΎΠ΅ΠΌ основном ΠΎΡ‚Π²Π΅Ρ‚Π΅. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, смотритС этот ΠΎΡ‚Π²Π΅Ρ‚ для Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ!

 count_inversions Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСста скорости
Π Π°Π·ΠΌΠ΅Ρ€ = 5, ΠΏΡ€ΠΈΠΌ = 2, 4096 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
ltree_count_PM2R : 0,04871, 0,04872, 0,04876
bruteforce_loops_PM2R : 0,05696, 0,05700, 0,05776
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych: 0,05760, 0,05822, 0,05943
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,06642, 0,06704, 0,06760
брутфорс_сумма_PM2R : 0,07523, 0,07545, 0,07563
ΠΏΠ΅Ρ€ΠΌ_сумма_PM2R : 0,09873, 0,09875, 0,09935
rank_sum_PM2R : 0,10449, 0,10463, 0,10468
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,13034, 0,13061, 0,13221
fenwick_inline_PM2R : 0,14323, 0,14610, 0,18802
perm_radixR_PM2R : 0,15146, 0,15203, 0,15235
merge_count_BM : 0,16179, 0,16267, 0,16467
perm_radixI_PM2R : 0,16200, 0,16202, 0,16768
perm_fenwick_PM2R : 0,16887, 0,16920, 0,17075
слияниС_PM2R: 0,18262, 0,18271, 0,18418
count_inversions_NiklasB : 0,19183, 0,19279, 0,20388
count_inversion_mkso : 0,20060, 0,20141, 0,20398
inv_cnt_ZheHu: 0,20815, 0,20841, 0,20906
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,22109, 0,22137, 0,22379
reversePairs_nomanpouigt: 0,29620, 0,29689, 0,30293
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 5
Π Π°Π·ΠΌΠ΅Ρ€ = 10, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 5, 2048 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych: 0,05954, 0,05989, 0,05991
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,05970, 0,05972, 0,05998
perm_sum_PM2R : 0,07517, 0,07519, 0,07520
ltree_count_PM2R : 0,07672, 0,07677, 0,07684
bruteforce_loops_PM2R : 0,07719, 0,07724, 0,07817
rank_sum_PM2R : 0,08587, 0,08823, 0,08864
брутфорс_сумма_PM2R : 0,09470, 0,09472, 0,09484
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,13126, 0,13154, 0,13185
perm_radixR_PM2R : 0,14239, 0,14320, 0,14474
perm_radixI_PM2R : 0,14632, 0,14669, 0,14679
fenwick_inline_PM2R : 0,16796, 0,16831, 0,17030
perm_fenwick_PM2R : 0,18189, 0,18212, 0,18638
merge_count_BM : 0,19816, 0,19870, 0,19948
count_inversions_NiklasB : 0,21807, 0,22031, 0,22215
слияниС_PM2R: 0,22037, 0,22048, 0,26106
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,24290, 0,24314, 0,24744
count_inversion_mkso : 0,24895, 0,24899, 0,25205
inv_cnt_ZheHu: 0,26253, 0,26259, 0,26590
reversePairs_nomanpouigt: 0,35711, 0,35762, 0,35973
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: 20
Π Π°Π·ΠΌΠ΅Ρ€ = 20, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 10, 1024 ΠΏΠ΅Ρ‚Π»ΠΈ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,05687, 0,05696, 0,05720
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych: 0,06126, 0,06151, 0,06168
perm_sum_PM2R : 0,06875, 0,06906, 0,07054
rank_sum_PM2R : 0,07988, 0,07995, 0,08002
ltree_count_PM2R : 0,11232, 0,11239, 0,11257
брутфорс_лупс_PM2R : 0,12553, 0,12584, 0,12592
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,13472, 0,13540, 0,13694
брутфорс_сумма_PM2R : 0,15820, 0,15849, 0,16021
perm_radixI_PM2R : 0,17101, 0,17148, 0,17229
perm_radixR_PM2R : 0,17891, 0,18087, 0,18366
perm_fenwick_PM2R : 0,20554, 0,20708, 0,21412
fenwick_inline_PM2R : 0,21161, 0,21163, 0,22047
merge_count_BM : 0,24125, 0,24261, 0,24565
count_inversions_NiklasB : 0,25712, 0,25754, 0,25778
слияниС_PM2R: 0,26477, 0,26566, 0,31297
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,28178, 0,28216, 0,29069
count_inversion_mkso : 0,30286, 0,30290, 0,30652
inv_cnt_ZheHu: 0,32024, 0,32041, 0,32447
reversePairs_nomanpouigt: 0,45812, 0,45822, 0,46172
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 98
Π Π°Π·ΠΌΠ΅Ρ€ = 40, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 20, 512 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,05784, 0,05787, 0,05958
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych: 0,06452, 0,06475, 0,06479
perm_sum_PM2R : 0,07254, 0,07261, 0,07263
rank_sum_PM2R : 0,08537, 0,08540, 0,08572
ltree_count_PM2R : 0,11744, 0,11749, 0,11792
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,14262, 0,14285, 0,14465
perm_radixI_PM2R : 0,18774, 0,18776, 0,18922
perm_radixR_PM2R : 0,19425, 0,19435, 0,19609
bruteforce_loops_PM2R : 0,21500, 0,21511, 0,21686
perm_fenwick_PM2R : 0,23338, 0,23375, 0,23674
fenwick_inline_PM2R : 0,24947, 0,24958, 0,25189
брутфорс_сумма_PM2R : 0,27627, 0,27646, 0,28041
merge_count_BM : 0,28059, 0,28128, 0,28294
count_inversions_NiklasB : 0,28557, 0,28759, 0,29022
слияниС_PM2R: 0,29886, 0,29928, 0,30317
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,30241, 0,30259, 0,35237
count_inversion_mkso : 0,34252, 0,34356, 0,34441
inv_cnt_ZheHu: 0,37468, 0,37569, 0,37847
reversePairs_nomanpouigt: 0,50725, 0,50770, 0,50943
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: 369
Π Π°Π·ΠΌΠ΅Ρ€ = 80, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 40, 256 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,06339, 0,06373, 0,06513
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych : 0,06984, 0,06994, 0,07009
perm_sum_PM2R : 0,09171, 0,09172, 0,09186
rank_sum_PM2R : 0,10468, 0,10474, 0,10500
ltree_count_PM2R : 0,14416, 0,15187, 0,18541
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,17415, 0,17423, 0,17451
perm_radixI_PM2R : 0,20676, 0,20681, 0,20936
perm_radixR_PM2R : 0,21671, 0,21695, 0,21736
perm_fenwick_PM2R : 0,26197, 0,26252, 0,26264
fenwick_inline_PM2R : 0,28111, 0,28249, 0,28382
count_inversions_NiklasB : 0,31746, 0,32448, 0,32451
merge_count_BM : 0,31964, 0,33842, 0,35276
слияниС_PM2R: 0,32890, 0,32941, 0,33322
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,34355, 0,34377, 0,34873
count_inversion_mkso : 0,37689, 0,37698, 0,38079
inv_cnt_ZheHu: 0,42923, 0,42941, 0,43249
bruteforce_loops_PM2R : 0,43544, 0,43601, 0,43902
брутфорс_сумма_PM2R : 0,52106, 0,52160, 0,52531
reversePairs_nomanpouigt: 0,57805, 0,58156, 0,58252
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: 1467
Π Π°Π·ΠΌΠ΅Ρ€ = 160, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 80, 128 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,06766, 0,06784, 0,06963
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych: 0,07433, 0,07489, 0,07516
perm_sum_PM2R : 0,13143, 0,13175, 0,13179
rank_sum_PM2R : 0,14428, 0,14440, 0,14922
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0. 20072, 0.20076, 0.20084
ltree_count_PM2R : 0,20314, 0,20583, 0,24776
perm_radixI_PM2R : 0,23061, 0,23078, 0,23525
perm_radixR_PM2R : 0,23894, 0,23915, 0,24234
perm_fenwick_PM2R : 0,30984, 0,31181, 0,31503
fenwick_inline_PM2R : 0,31933, 0,32680, 0,32722
merge_count_BM : 0,36003, 0,36387, 0,36409count_inversions_NiklasB : 0,36796, 0,36814, 0,37106
слияниС_PM2R: 0,36847, 0,36848, 0,37127
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,37833, 0,37847, 0,38095
count_inversion_mkso : 0,42746, 0,42747, 0,43184
inv_cnt_ZheHu: 0,48969, 0,48974, 0,49293
reversePairs_nomanpouigt: 0,67791, 0,68157, 0,72420
bruteforce_loops_PM2R : 0,82816, 0,83175, 0,83282
брутфорс_сумма_PM2R : 1.03322, 1.03378, 1.03562
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: 6194
Π Π°Π·ΠΌΠ΅Ρ€ = 320, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 160, 64 ΠΏΠ΅Ρ‚Π»ΠΈ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,07467, 0,07470, 0,07483
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_TimBabych : 0,08036, 0,08066, 0,08077
perm_sum_PM2R : 0,21142, 0,21201, 0,25766
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,22410, 0,22644, 0,22897
rank_sum_PM2R : 0,22820, 0,22851, 0,22877
ltree_count_PM2R : 0,24424, 0,24595, 0,24645
perm_radixI_PM2R : 0,25690, 0,25710, 0,26191
perm_radixR_PM2R : 0,26501, 0,26504, 0,26729
perm_fenwick_PM2R : 0,33483, 0,33507, 0,33845
fenwick_inline_PM2R : 0,34413, 0,34484, 0,35153
merge_count_BM : 0,39875, 0,39919, 0,40302
Π€Π΅Π½Π²ΠΈΠΊ_PM2R : 0,40434, 0,40439, 0,40845
слияниС_PM2R: 0,40814, 0,41531, 0,51417
count_inversions_NiklasB : 0,41681, 0,42009, 0,42128
count_inversion_mkso : 0,47132, 0,47192, 0,47385
inv_cnt_ZheHu: 0,54468, 0,54750, 0,54893
reversePairs_nomanpouigt: 0,76164, 0,76389, 0,80357
брутфорс_лупс_PM2R : 1,59125, 1,60430, 1,64131
bruteforce_sum_PM2R : 2. 03734, 2.03834, 2.03975
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: 24959
Запуск 2
Π Π°Π·ΠΌΠ΅Ρ€ = 640, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 320, 8 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,04135, 0,04374, 0,04575
ltree_count_PM2R : 0,06738, 0,06758, 0,06874
perm_radixI_PM2R : 0,06928, 0,06943, 0,07019
fenwick_inline_PM2R : 0,07850, 0,07856, 0,08059perm_fenwick_PM2R : 0,08151, 0,08162, 0,08170
perm_sum_PM2R : 0,09122, 0,09133, 0,09221
rank_sum_PM2R : 0,09549, 0,09603, 0,11270
merge_count_BM : 0,10733, 0,10807, 0,11032
count_inversions_NiklasB : 0,12460, 0,19865, 0,20205
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,13514, 0,13585, 0,13814
Π Π°Π·ΠΌΠ΅Ρ€ = 1280, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 640, 8 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,04714, 0,04742, 0,04752
perm_radixI_PM2R : 0,15325, 0,15388, 0,15525
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,15709, 0,15715, 0,16076
fenwick_inline_PM2R : 0,16048, 0,16160, 0,16403
ltree_count_PM2R : 0,16213, 0,16238, 0,16428
perm_fenwick_PM2R : 0,16408, 0,16416, 0,16449count_inversions_NiklasB : 0,19755, 0,19833, 0,19897
merge_count_BM : 0,23736, 0,23793, 0,23912
perm_sum_PM2R : 0,32946, 0,32969, 0,33277
rank_sum_PM2R : 0,34637, 0,34756, 0,34858
Π Π°Π·ΠΌΠ΅Ρ€ = 2560, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 1280, 8 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,10898, 0,11005, 0,11025
perm_radixI_PM2R : 0,33345, 0,33352, 0,37656
ltree_count_PM2R : 0,34670, 0,34786, 0,34833
perm_fenwick_PM2R : 0,34816, 0,34879, 0,35214
fenwick_inline_PM2R : 0,36196, 0,36455, 0,36741
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,36498, 0,36637, 0,40887
count_inversions_NiklasB : 0,42274, 0,42745, 0,42995
merge_count_BM : 0,50799, 0,50898, 0,50917
perm_sum_PM2R : 1,27773, 1,27897, 1,27951
rank_sum_PM2R : 1. 29728, 1.30389, 1.30448
Π Π°Π·ΠΌΠ΅Ρ€ = 5120, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 2560, 8 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,26914, 0,26993, 0,27253
perm_radixI_PM2R : 0,71416, 0,71634, 0,71753
perm_fenwick_PM2R : 0,71976, 0,72078, 0,72078
fenwick_inline_PM2R : 0,72776, 0,72804, 0,73143
ltree_count_PM2R : 0,81972, 0,82043, 0,82290
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 0,83714, 0,83756, 0,83962
count_inversions_NiklasB : 0,87282, 0,87395, 0,92087
merge_count_BM: 1.09496, 1.09584, 1.10207
rank_sum_PM2R : 5.02564, 5.06277, 5.06666
perm_sum_PM2R : 5.09088, 5.12999, 5.13512
Π Π°Π·ΠΌΠ΅Ρ€ = 10240, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 5120, 8 ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 0,71556, 0,71718, 0,72201
perm_radixI_PM2R : 1,54785, 1,55096, 1,55515
perm_fenwick_PM2R : 1.55103, 1.55353, 1.59298
fenwick_inline_PM2R : 1,57118, 1,57240, 1,57271
ltree_count_PM2R : 1,76240, 1,76247, 1,80944
count_inversions_NiklasB : 1,86543, 1,86851, 1,87208
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 2.01490, 2.01519, 2.06423
merge_count_BM: 2.35215, 2.35301, 2.40023
rank_sum_PM2R : 20.07048, 20.08399, 20.13200
perm_sum_PM2R : 20.10187, 20.12551, 20. 12683
Запуск 3
Π Π°Π·ΠΌΠ΅Ρ€ = 20480, ΠΏΡ€ΠΈΠΌ = 10240, 4 ΠΏΠ΅Ρ‚Π»ΠΈ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 1.07636, 1.08243, 1.09569
perm_radixI_PM2R : 1,59579, 1,60519, 1,61785
perm_fenwick_PM2R : 1.66885, 1.68549, 1.71109
fenwick_inline_PM2R : 1.72073, 1.72752, 1.77217
ltree_count_PM2R : 1,96900, 1,97820, 2,02578
count_inversions_NiklasB : 2.03257, 2.05005, 2.18548
merge_count_BM : 2,46768, 2,47377, 2,52133
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 2.49833, 2.50179, 3.79819
Π Π°Π·ΠΌΠ΅Ρ€ = 40960, ΠΏΡ€ΠΈΠΌ = 20480, 4 ΠΏΠ΅Ρ‚Π»ΠΈ
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 3.51733, 3.52008, 3.56996
perm_radixI_PM2R : 3,51736, 3,52365, 3,56459
perm_fenwick_PM2R : 3.76097, 3.80900, 3.87974
fenwick_inline_PM2R : 3,95099, 3,96300, 3,99748
ltree_count_PM2R : 4,49866, 4,54652, 5,39716
count_inversions_NiklasB : 4.61851, 4.64303, 4.73026
merge_count_BM : 5,31945, 5.35378, 5.35951
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 6.78756, 6.82911, 6.98217
Π Π°Π·ΠΌΠ΅Ρ€ = 81920, ΠΏΡ€ΠΈΠΌ = 40960, 4 ΠΏΠ΅Ρ‚Π»ΠΈ
perm_radixI_PM2R : 7,68723, 7,71986, 7,72135
perm_fenwick_PM2R : 8.52404, 8.53349, 8.53710
fenwick_inline_PM2R : 8.97082, 8.97561, 8.98347
ltree_count_PM2R : 10. 01142, 10.01426, 10.03216
count_inversions_NiklasB : 10.60807, 10.62424, 10.70425
merge_count_BM: 11.42149, 11.42342, 11.47003
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 12.83390, 12.83485, 12.89747
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python : 19.66092, 19.67067, 20.72204
Π Π°Π·ΠΌΠ΅Ρ€ = 163840, ΠΏΡ€ΠΈΠΌ = 81920, 4 ΠΏΠ΅Ρ‚Π»ΠΈ
perm_radixI_PM2R : 17.14153, 17.16885, 17.22240
perm_fenwick_PM2R : 19.25944, 19.27844, 20.27568
fenwick_inline_PM2R : 19.78221, 19.80219, 19.80766
ltree_count_PM2R : 22.42240, 22.43259, 22.48837
count_inversions_NiklasB : 22.97341, 23.01516, 23.98052
merge_count_BM: 24.42683, 24.48559, 24.51488
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 60.96006, 61.20145, 63.71835
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 73.75132, 73.79854, 73.95874
Π Π°Π·ΠΌΠ΅Ρ€ = 327680, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 163840, 4 ΠΏΠ΅Ρ‚Π»ΠΈ
perm_radixI_PM2R : 36.56715, 36.60221, 37.05071
perm_fenwick_PM2R : 42.21616, 42.21838, 42.26053
fenwick_inline_PM2R : 43.04987, 43.09075, 43.13287
ltree_count_PM2R : 49.87400, 50.08509, 50.69292
count_inversions_NiklasB : 50.74591, 50.75012, 50.75551
merge_count_BM: 52.37284, 52.51491, 53.43003
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 373. 67198, 377.03341, 377.42360
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 411.69178, 411.92691, 412.83856
Π Π°Π·ΠΌΠ΅Ρ€ = 655360, ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ° = 327680, 4 ΠΏΠ΅Ρ‚Π»ΠΈ
perm_radixI_PM2R : 78,51927, 78.66327, 79.46325
perm_fenwick_PM2R : 90.64711, 90.80328, 91.76126
fenwick_inline_PM2R : 93.32482, 93.39086, 94.28880
count_inversions_NiklasB : 107.74393, 107.80036, 108.71443
ltree_count_PM2R : 109.11328, 109.23592, 110.18247
merge_count_BM: 111.05633, 111.07840, 112.05861
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅E_TimBabych: 1830.46443, 1836.39960, 1849.53918
Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅_python: 1911.03692, 1912.04484, 1914.69786
 

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ инвСрсий Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Ρ…

Π― участвовал Π² сорСвновании ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ смог Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π°:

Учитывая массив A ΠΈΠ· n Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство инвСрсий Π² Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Ρ…. Вводится Ρ†Π΅Π»ΠΎΠ΅ число m, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ количСство Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², Π·Π°Ρ‚Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ m строк, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π·Π°Π΄Π°Π½Ρ‹ Π΄Π²Π° Ρ†Π΅Π»Ρ‹Ρ… числа li ΠΈ ri.

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ инвСрсии Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Ρ‚.Π΅. ΠΎΡ‚ li Π΄ΠΎ ri Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (индСксация Π½Π° основС 0).

Π”Π²Π° элСмСнта A[i] ΠΈ A[j] ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ, Ссли A[i]>A[j] ΠΈ i .

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: A=[3 2 1 4] 99

Π― знаю ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для вычислСния числа инвСрсий Π² O(nlogn) (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, BIT ΠΈΠ»ΠΈ сортировка слияниСм) для всСго массива, ΠΈ Ссли я ΠΏΡ€ΠΈΠΌΠ΅Π½ΡŽ Ρ‚ΠΎ ΠΆΠ΅ самоС здСсь ΠΊΠΎ всСм Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ O(mnlogn), Ρ‡Ρ‚ΠΎ, бСзусловно, Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π² качСствС ограничСния ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ составляСт 1 сСкунду.

  • Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ
  • структуры Π΄Π°Π½Π½Ρ‹Ρ…

1

Π’ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ O((n + m) sqrt n log n). ВСроятно, этого нСдостаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ, Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ здСсь каТСтся Π½Π΅ совсСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ β€” ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ‚Ρ€ΡŽΠΊΠΈ Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. (O((n + m) sqrt n) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнуто с большСй ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.)

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив Π½Π° sqrt n подмассивов Π΄Π»ΠΈΠ½Ρ‹ sqrt n, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π±Π»ΠΎΠΊΠ°ΠΌΠΈ . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ подсчСта инвСрсий, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹, состоящСй ΠΈΠ· Π±Π»ΠΎΠΊΠ° ΠΈ прСфикса массива, Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ количСство инвСрсий, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт происходит ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт происходит ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. (O(n sqrt n log n)) Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС для ΠΏΠ°Ρ€ прСфикс-Π±Π»ΠΎΠΊ.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° объСдинСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² (Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнтов) ΠΈ ΠΌΠ΅Π½Π΅Π΅ 2 sqrt n элСмСнтов (Π½Π΅Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнтов). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вычислСнныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅-ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ количСство инвСрсий Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Π³Π΄Π΅ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ элСмСнт Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½. (O(sqrt n)) ВычислитС ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ этой Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ количСство инвСрсий Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌ Π΄Π²Π° Π½Π΅Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнта. (O(ΠΊΠ². n log n))

1

O((n + m) * sqrt(n) * log(n)) врСмя, O(n + m) пространствСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ с Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌΠΈ запросами (всС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ запросов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ извСстны Π·Π°Ρ€Π°Π½Π΅Π΅):

  1. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив A ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° sqrt(n) Ρ€Π°Π²Π½Ρ‹Ρ… частСй.
  2. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части массива Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ шаги 3...7.
  3. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 3 указатСля ( Pbegin , Pmid , Pend ) Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ Π½Π° ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ части массива (Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π° самоС ΠΏΡ€Π°Π²ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ этой части).
  4. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠžΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ ; ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ статистики Π·Π°ΠΊΠ°Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт количСство инвСрсий ΠΌΠ΅ΠΆΠ΄Ρƒ Pmid ΠΈ Pend ; ΠΊΠΎΠ³Π΄Π° Pend совпадаСт с ΠΊΠΎΠ½Ρ†ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ части массива, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ шаги 5...7.
  5. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Pbegin Π½Π°Π·Π°Π΄, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ совпадСт с Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° шагС 4. ΠΠ°ΠΊΠΎΠΏΠΈΡ‚ΡŒ количСство элСмСнтов Π² Π΄Π΅Ρ€Π΅Π²Π΅ порядковой статистики мСньшС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Pbegin (Π½ΠΎ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ).
  6. НайдитС количСство инвСрсий ΠΌΠ΅ΠΆΠ΄Ρƒ Pbegin ΠΈ Pmid (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΈΠ±ΠΎ сортировку слияниСм, Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ статистики порядка).
  7. Π‘ΡƒΠΌΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ количСство инвСрсий, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π½Π° ΡˆΠ°Π³Π°Ρ… 4, 5, 6. Π­Ρ‚ΠΎ количСство инвСрсий для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Π”Π΅Ρ€Π΅Π²ΠΎ BIT/Fenwick ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано здСсь ΠΊΠ°ΠΊ эффСктивная рСализация Π΄Π΅Ρ€Π΅Π²Π° статистики Π·Π°ΠΊΠ°Π·ΠΎΠ². Π’ этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° нСкоторая ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: подстановка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива ΠΈΡ… индСксами Π² ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ копию массива для сТатия Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.


O((n + m) * sqrt(n)) Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, O(n * sqrt(n)) пространствСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ запросами. Как Π½Π°ΠΌΠ΅ΠΊΠ½ΡƒΠ» Дэвид Π­ΠΉΠ·Π΅Π½ΡˆΡ‚Π°Ρ‚.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°:

  1. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ значСния массива ΠΈΡ… индСксами Π² отсортированной ΠΊΠΎΠΏΠΈΠΈ массива для сТатия Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
  2. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив A ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° sqrt(n) Ρ€Π°Π²Π½Ρ‹Ρ… частСй.
  3. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части B массива Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ шаги 4...8.
  4. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ нулями Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 'n'. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΡ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСниям части Β«BΒ». Для этого Π½Π°Π±ΠΎΡ€Π° Π±ΠΈΡ‚ΠΎΠ² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ массив сумм прСфиксов P ΠΈ массив сумм суффиксов S .
  5. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈ C ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈ B Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ шаг 6.
  6. Начиная с послСднСго значСния v части C ΠΈ двигаясь Π½Π°Π·Π°Π΄, слоТитС всС значСния P[v] ΠΈ Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ sqrt(n) Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ E . Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этого шага O(n * sqrt(n)).
  7. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈ D ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈ B Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ шаг 8.
  8. Начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ значСния v части D ΠΈ Π΄Π°Π»Π΅Π΅, слоТитС всС значСния S[v] ΠΈ Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ sqrt(n) Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ F . Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этого шага O(n * sqrt(n)).
  9. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ (Π΄Π΅Ρ€Π΅Π²ΠΎ Π€Π΅Π½Π²ΠΈΠΊΠ°) для подсчСта количСства инвСрсий Π²ΠΎ всСх суффиксах Π±Π»ΠΎΠΊΠΎΠ² (всС подмассивы, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π±Π»ΠΎΠΊΠ°, Π΄Π»ΠΈΠ½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ sqrt(n) ). Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ G . Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этого шага составляСт O(n * log n).
  10. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для подсчСта количСства инвСрсий Π²ΠΎ всСх прСфиксах Π±Π»ΠΎΠΊΠΎΠ². Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ H . Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этого шага составляСт O(n * log n).
  11. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ любой ΠΈΠ· E ΠΈΠ»ΠΈ F ΠΈ любой ΠΈΠ· G ΠΈΠ»ΠΈ H для вычислСния числа инвСрсий Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… (с любой ΠΏΠ°Ρ€ΠΎΠΉ Π±Π»ΠΎΠΊΠΎΠ² для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ). Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ R . Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этого шага O(n).

ПослС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько LUT, содСрТащих количСство инвСрсий Π² прСфиксах/суффиксах Π±Π»ΠΎΠΊΠΎΠ² ( G , H , O(n) ΠΏΡ€ΠΎΠ±Π΅Π»), количСство инвСрсий ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ прСфиксами/суффиксами Π±Π»ΠΎΠΊΠΎΠ² ( E , F , O(n * sqrt(n)) ΠΏΡ€ΠΎΠ±Π΅Π»), ΠΈ количСство инвСрсий Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… ( R , O(n) ΠΏΡ€ΠΎΠ±Π΅Π»). (ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ E ΠΈ F с R , Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ Π΄Π°Π΅Ρ‚ врСмя O(1) для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ шага запроса).

Запрос:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ R , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ количСство инвСрсий Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ E ΠΈ F , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ количСство инвСрсий ΠΌΠ΅ΠΆΠ΄Ρƒ прСфиксом/суффиксом ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· этих ΠΏΠΎΠ»Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ G ΠΈ H , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ количСство инвСрсий Π² прСфиксС ΠΈ Π² суффиксС.
  2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ число инвСрсий ΠΌΠ΅ΠΆΠ΄Ρƒ прСфиксом ΠΈ суффиксом, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сортировку ΠΏΠΎ основанию ( sqrt(n) счСтчиков, 2 ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° подсчСта ΠΈ 2 ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° для распрСдСлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΈΡ….
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ значСния ΠΈΠ· шагов 1 ΠΈ 2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ количСство инвСрсий для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° запроса.

1

Π’ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π°, Ρ‚Π°ΠΊΠΆΠ΅ с Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ вычисляСтС ΠΈ сохраняСтС количСство инвСрсий для всСх прСфиксов вашСго массива Π·Π° врСмя O (n log n), добавляя ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Π·Π° Ρ€Π°Π· справа Π½Π°Π»Π΅Π²ΠΎ ΠΈ выполняя поиск ΠΏΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌΡƒ Π΄Π΅Ρ€Π΅Π²Ρƒ поиска, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ элСмСнт Π² Π΄Π΅Ρ€Π΅Π²Π΅ всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ элСмСнты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… инвСрсий, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΠ±Π°Π»Π°Π½ΡΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска). (3/2) log n).

Π—Π°Ρ‚Π΅ΠΌ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ прСфикс ΠΈ суффикс ΠΈ округляСтС суффикс Π΄ΠΎ блиТайшСго ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ sqrt(n) большСго числа, ΠΈ ΠΈΡ‰Π΅Ρ‚Π΅ количСство инвСрсий Π·Π° врСмя O(1). Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ элСмСнты Π² суффиксС ΠΈ ΠΈΡ‰Π΅Ρ‚Π΅ количСство инвСрсий Π² прСфиксС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заканчиваСтся блиТайшим ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ sqrt (n) Π½ΠΈΠΆΠ΅, Π·Π° врСмя O (sqrt (n)). Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ элСмСнты Π² суффиксС ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ элСмСнты Π² прСфиксС (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ sqrt (n)), ΠΈ Π³Ρ€ΡƒΠ±ΠΎΠΉ силой вычисляСтС количСство инвСрсий ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π·Π° врСмя O (sqrt (n) log n) . ΠžΠ±Ρ‰Π΅Π΅ врСмя вычислСний составляСт O(sqrt(n) log n) Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π΅ врСмя выполнСния O((m + n) sqrt(n) log n) Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² 1 сСкунду.

3-ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½: индСксы 0–3 содСрТат 1-ΠΉ ΠΈ 2-ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹.

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, сколько инвСрсий ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΎΡΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Ρ…, Π²Ρ‹ ΠΈΡ… пропускаСтС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сравнСниС 1 с 2 ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сравнСниС 2 с 3.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *