Π Π°Π±ΠΎΡ‚Π° с массивами Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых вострСбованных Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Часто программистам трСбуСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта, Π½ΠΎ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (индСкс) Π² массивС. НапримСр, ΠΏΡ€ΠΈ поискС Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ², сортировкС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, Π³Π΄Π΅ для этого Π΅ΡΡ‚ΡŒ стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ indexOf(), Π² 1Π‘ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ 5 Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… способов Π½Π°ΠΉΡ‚ΠΈ индСкс элСмСнта Π² массивС 1Π‘ β€” ΠΎΡ‚ простых Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидаСтся, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с динамичСскими массивами, структурами ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° протСстированы Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ массива Π² Ρ†ΠΈΠΊΠ»Π΅

Π‘Π°ΠΌΡ‹ΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ понятный способ β€” это поэлСмСнтный ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ массива с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ условия. Он ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² массивов (ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ…, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ…, динамичСских) ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для поиска индСкса числа 42 Π² массивС:

МассивЧисСл = Новый Массив;

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(10);

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(42);

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(7);

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(42); // Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚

Π˜ΡΠΊΠΎΠΌΡ‹ΠΉΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ = 42;

ИндСкс = НСопрСдСлСно;

Для Π‘Ρ‡ = 0 По МассивЧисСл.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Если МассивЧисСл[Π‘Ρ‡] = Π˜ΡΠΊΠΎΠΌΡ‹ΠΉΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π’ΠΎΠ³Π΄Π°

ИндСкс = Π‘Ρ‡;

ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ; // НайдСн ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ИндСкс); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: 1

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… нСдостатка:

  • πŸ” ЛинСйная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: врСмя поиска растёт ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ массива. Для 10 000 элСмСнтов потрСбуСтся Π΄ΠΎ 10 000 ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ.
  • 🎯 Волько ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс: Ρ†ΠΈΠΊΠ» прСрываСтся послС нахоТдСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ совпадСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС индСксы, Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.
πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π’Π‘Π• индСксы ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π½Π° запись индСкса Π² Π½ΠΎΠ²Ρ‹ΠΉ массив. НапримСр: Π˜Π½Π΄Π΅ΠΊΡΡ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‡)

2. ΠœΠ΅Ρ‚ΠΎΠ΄ Найти() β€” ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅Ρ‚)

Π’ 1Π‘ Π΅ΡΡ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Однако Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

Π’ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Найти()? ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
Массив ❌ НСт Волько Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€
Бписок Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ βœ… Π”Π° Бписок.Найти(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ βœ… Π”Π° (ΠΏΠΎ строкС) Π’Π°Π±Π»ΠΈΡ†Π°.Найти(НоваяБтрока, "Колонка")
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ❌ НСт Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°.Бвойство()

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с списком Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Бписок = Новый БписокЗначСний;

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π―Π±Π»ΠΎΠΊΠΎ");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π‘Π°Π½Π°Π½");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("АпСльсин");

ИндСкс = Бписок.Найти("Π‘Π°Π½Π°Π½");

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ИндСкс); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: 1 (индСксация с 0!)

πŸ’‘

ΠœΠ΅Ρ‚ΠΎΠ΄ Найти() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс с нуля, Π΄Π°ΠΆΠ΅ Ссли Π² интСрфСйсС 1Π‘ отобраТаСтся нумСрация с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…).

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если элСмСнт Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Найти() Π²Π΅Ρ€Π½Ρ‘Ρ‚ НСопрСдСлСно, Π° Π½Π΅ -1 ΠΈΠ»ΠΈ Null. ВсСгда провСряйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Если ИндСкс = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½!");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

3. Поиск Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π½ΡŽΠ°Π½ΡΡ‹ ΠΈ оптимизация

Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых распространённых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 1Π‘. Для поиска строки ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти(), Π½ΠΎ с Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ особСнностями:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска строки, Π³Π΄Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° "Артикул" Ρ€Π°Π²Π½Π° "ABC123":

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Артикул");

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НаимСнованиС");

НоваяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.Артикул = "ABC123";

НоваяБтрока.НаимСнованиС = "ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€";

НайдСннаяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°.Найти("ABC123", "Артикул");

Если НайдСннаяБтрока <> НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

ИндСкс = Π’Π°Π±Π»ΠΈΡ†Π°.ИндСкс(НайдСннаяБтрока);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ИндСкс строки: " + ИндСкс); // 0

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

  • πŸ“Œ ΠœΠ΅Ρ‚ΠΎΠ΄ Найти() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ саму строку, Π° Π½Π΅ Π΅Ρ‘ индСкс. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ†Π°.ИндСкс(Π‘Ρ‚Ρ€ΠΎΠΊΠ°).
  • πŸ”„ Для ускорСния поиска Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… (< 10 000 строк) ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отсортируйтС Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠΎ искомой ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠŸΠΎΠ˜ΠΌΠ΅Π½ΠΈΠšΠΎΠ»ΠΎΠ½ΠΊΠΈ.
  • 🚫 Если ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π½Π΅ индСксирована, поиск Π±ΡƒΠ΄Π΅Ρ‚ полнотСкстовым (ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ).
πŸ“Š Какой Ρ‚ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
ΠœΠ°ΡΡΠΈΠ²Ρ‹
Бписки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹

4. Поиск Π² структурС ΠΈ соотвСтствиях

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ (Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°) ΠΈ соотвСтствия (БоотвСтствиС) Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти(), Π½ΠΎ для Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹:

Для структуры (ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅):

Π”Π°Π½Π½Ρ‹Π΅ = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°;

Π”Π°Π½Π½Ρ‹Π΅.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Имя", "Иван");

Π”Π°Π½Π½Ρ‹Π΅.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Возраст", 30);

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования ΠΊΠ»ΡŽΡ‡Π°

Если Π”Π°Π½Π½Ρ‹Π΅.Бвойство("Возраст") Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠšΠ»ΡŽΡ‡ сущСствуСт!");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Для соотвСтствия (двунаправлСнная связь):

БопоставлСниС = Новый БоотвСтствиС;

БопоставлСниС.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Код1", "НаимСнованиС1");

БопоставлСниС.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Код2", "НаимСнованиС2");

// Поиск ΠΊΠ»ΡŽΡ‡Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ поиск)

Для КаТдого ΠšΠ»ΡŽΡ‡ Из БопоставлСниС Π¦ΠΈΠΊΠ»

Если БопоставлСниС[ΠšΠ»ΡŽΡ‡] = "НаимСнованиС2" Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НайдСн ΠΊΠ»ΡŽΡ‡: " + ΠšΠ»ΡŽΡ‡); // Код2

ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² 1Π‘ Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° "indexOf" для массивов?

Π’ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π΄ΠΎ 8.3) массивы Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ простыС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π±Π΅Π· встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² поиска. Π₯отя Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях появились Найти() для списков ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†, для массивов этот Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½Π΅ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π°Π΄ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

5. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ поиск: Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для отсортированных массивов

Если ваш массив отсортирован ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск (ΠΌΠ΅Ρ‚ΠΎΠ΄ "Π΄Π΅Π»ΠΈ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ"). Π­Ρ‚ΠΎ сокращаСт врСмя поиска с O(n) Π΄ΠΎ O(log n) β€” ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ для массивов Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ > 1000 элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

Ѐункция Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉΠŸΠΎΠΈΡΠΊ(Массив, Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

ЛСваяГраница = 0;

ΠŸΡ€Π°Π²Π°ΡΠ“Ρ€Π°Π½ΠΈΡ†Π° = Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°();

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = НСопрСдСлСно;

Пока ЛСваяГраница <= ΠŸΡ€Π°Π²Π°ΡΠ“Ρ€Π°Π½ΠΈΡ†Π° Π¦ΠΈΠΊΠ»

Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π° = Π¦Π΅Π»((ЛСваяГраница + ΠŸΡ€Π°Π²Π°ΡΠ“Ρ€Π°Π½ΠΈΡ†Π°) / 2);

Если Массив[Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π°] = Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΎΠ³Π΄Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π°;

ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ;

Π˜Π½Π°Ρ‡Π΅Π•ΡΠ»ΠΈ Массив[Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π°] < Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΎΠ³Π΄Π°

ЛСваяГраница = Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π° + 1;

Π˜Π½Π°Ρ‡Π΅

ΠŸΡ€Π°Π²Π°ΡΠ“Ρ€Π°Π½ΠΈΡ†Π° = Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π° - 1;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Новый Массив;

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(5);

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(15);

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(25);

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(35);

ИндСкс = Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉΠŸΠΎΠΈΡΠΊ(ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ², 25);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ИндСкс); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: 2

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° отсортированных массивах! Если порядок элСмСнтов Π½Π°Ρ€ΡƒΡˆΠ΅Π½, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠŸΠ΅Ρ€Π΅Π΄ использованиСм ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сортировку:

Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(НаправлСниСБортировки.ΠŸΠΎΠ’ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ);

6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

ΠŸΡ€ΠΈ поискС индСксов Π² 1Π‘ программисты часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π’ΠΎΡ‚ самыС распространённыС:

  • πŸ”’ ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° с индСксациСй: Π² 1Π‘ массивы ΠΈ списки ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ с 0, Π½ΠΎ Π² интСрфСйсС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частях Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) нумСрация ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с 1. ВсСгда уточняйтС контСкст!
  • πŸ”„ Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистра: ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти() для строк чувствитСлСн ΠΊ рСгистру. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Найти(..., Π›ΠΎΠΆΡŒ) для рСгистронСзависимого поиска.
  • πŸ—‘οΈ Поиск Π² Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… массивах: Ссли массив пуст (Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() = 0), любой поиск Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ.
  • πŸ”„ ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ массива Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅ Для ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСпрСдсказуСмым Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Пока ΠΈΠ»ΠΈ копию массива.

Массив ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ (Π½Π΅ Ρ€Π°Π²Π΅Π½ НСопрСдСлСно)|

Массив Π½Π΅ пустой (ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > 0)|

Π£Ρ‡Ρ‚Π΅Π½Π° индСксация с 0|

Для строковых Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΡ‡Ρ‚Ρ‘Π½ рСгистр|

-->

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ошибка: Ссли Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ индСкс Π² массивС структур ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², сравнСниС ΠΏΠΎ ссылкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Массив[Π‘Ρ‡] = Π˜ΡΠΊΠΎΠΌΡ‹ΠΉΠžΠ±ΡŠΠ΅ΠΊΡ‚) Π½Π΅ сработаСт β€” Π½ΡƒΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ свойства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Массив[Π‘Ρ‡].Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ = Π˜ΡΠΊΠΎΠΌΡ‹ΠΉID).

FAQ: ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° частыС вопросы

МоТно Π»ΠΈ Π½Π°ΠΉΡ‚ΠΈ индСкс элСмСнта Π² массивС Π±Π΅Π· Ρ†ΠΈΠΊΠ»Π°?

Для простых массивов (Массив) β€” Π½Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€. Для БпискаЗначСний ΠΈ Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти(), Π½ΠΎ ΠΎΠ½ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½Π΅ индСкс, Π° саму строку ΠΈΠ»ΠΈ элСмСнт (индСкс придётся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ИндСкс()).

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Найти() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно, хотя элСмСнт Π΅ΡΡ‚ΡŒ Π² массивС?

ВСроятныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  1. Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ массив, Π° Π½Π΅ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (массивы Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Найти()).
  2. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива β€” это ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Π½Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния (сравнСниС ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ ссылкС, Π° Π½Π΅ ΠΏΠΎ содСрТимому).
  3. Для строк Π½Π΅ ΡƒΡ‡Ρ‚Ρ‘Π½ рСгистр (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поиск рСгистрозависимый).
Как Π½Π°ΠΉΡ‚ΠΈ всС индСксы ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов?

ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ индСксы Π² Π½ΠΎΠ²Ρ‹ΠΉ массив:

Π˜Π½Π΄Π΅ΠΊΡΡ‹ = Новый Массив;

Для Π‘Ρ‡ = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Если Массив[Π‘Ρ‡] = Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΎΠ³Π΄Π°

Π˜Π½Π΄Π΅ΠΊΡΡ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‡);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π•ΡΡ‚ΡŒ Π»ΠΈ Π² 1Π‘ Π°Π½Π°Π»ΠΎΠ³ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_search ΠΈΠ· PHP?

ΠŸΡ€ΡΠΌΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π° Π½Π΅Ρ‚, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Ѐункция ArraySearch(Массив, Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

Для Π‘Ρ‡ = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Если Массив[Π‘Ρ‡] = Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‡;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ НСопрСдСлСно;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ поиск Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах (> 10 000 элСмСнтов)?

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Если массив статичСский ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² БоотвСтствиС (ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) с индСксами.
  • Если массив отсортирован β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск (см. Ρ€Π°Π·Π΄Π΅Π» 5).
  • Если поиск ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ слоТному ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ нСскольким полям) β€” рассмотритС использованиС Запрос с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ.