ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². 
ВСхнология Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Поиск, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, поиск: поиск индСкса минимального элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ, снова поиск минимального, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 477 оказался наимСньшим (Π½Π°Π·ΠΎΠ²Π΅ΠΌ это «ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ случаСм»). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ обновляСм содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… mini ΠΈ min2. Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нашли Π½ΠΎΠ²Ρ‹ΠΉ наимСньший элСмСнт. Поиск, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, поиск. Поиск индСкса минимального элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². ВСхнология Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ наимСньшСго элСмСнта Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…: 809, 834, 477, 478, 307, 122, 96, 102, 324, 476.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ подходящий для хранСния Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ список:

«> counts = [809, 834, 477, 478, 307, 122, 96, 102, 324, 476].

>" counts. index (min (counts)).

# Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΎΠ΄Π½Ρƒ строку!

>>>

УслоТним Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚аСмся Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π΄Π²ΡƒΡ… Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… элСмСнтов Π² Π½Π΅ΠΎΡ‚сортированном спискС. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

  • 1) поиск, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, поиск. Поиск индСкса минимального элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ, снова поиск минимального, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт Π² ΡΠΏΠΈΡΠΎΠΊ;
  • 2) сортировка, поиск ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ индСксов;
  • 3) ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ всСго списка. Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт, Π½ΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π²Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… значСния, обновляСм значСния, Ссли Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ наимСньшиС.

Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

1. Поиск, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, поиск: поиск индСкса минимального элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ, снова поиск минимального, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ.

НачнСм:

[809, 834, 477, 478, 307, 122, 96, 102, 324, 476] индСкс: 0 1 23 4 567 8 9.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ: 96.

ИндСкс элСмСнта 96: 6.

УдаляСм ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт (96), ΠΏΡ€ΠΈ этом индСксы Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ спискС ΡΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ:

[809, 834, 477, 478, 307, 122, 102, 324, 476].

индСкс :12 345 6 7 8

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ: 102.

ИндСкс элСмСнта 102: 6.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ) элСмСнт ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ:

[809, 834, 477, 478, 307, 122, 96, 102, 324, 476] индСкс: 0 1 23 4567 8 9

НС Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ индСксов послС удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ минимального элСмСнта: индСкс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ минимального элСмСнта Ρ€Π° Π²Π΅Π½ индСксу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ минимального элСмСнта, поэтому ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ индСкс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ минимального Π½Π° 1. Ѐункция, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

def find_two_smallest (L): smallest = min (L) mini = L. index (smallest).

L.remove (smallest).

# удаляСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт next_smallest = min (L).

min2 = L. index (next_smallest).

L.insert (mini, smallest).

# Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ.

# провСряСм индСкс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ минимального ΠΈΠ·-Π·Π° смСщСния: if mini <= min2:

min2 += 1 # min2 = min2 + 1.

return (mini, min2) # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ.

2. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°, поиск ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ индСксов:

рСализация Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятна, поэтому ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исходный тСкст Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

def find_two_smallest (L): temp_list = sorted (L) smallest = temp_list[0] next_smallest = temp_list[l] mini = L. index (smallest) min2 = L. index (next_smallest) return (mini, min2).

3. ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ всСго списка: сравниваСм ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π²Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… значСния, обновляСм значСния, Ссли Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ наимСньшиС.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ слоТный ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅, поэтому остановимся Π½Π° Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ взглядом сразу вСсь список ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² являСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ. Он ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ элСмСнты ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ пСрСбирая ΠΈΡ… ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ.

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° элСмСнта списка.

[809, 834, …].

индСкс: 0 1.

Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ 809 ΠΈ 834 ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ наимСньший ΠΈΠ· Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния mini ΠΈ min2, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ индСксы ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ минимального ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ минимального элСмСнтов соотвСтствСнно. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнты, начиная с ΠΈΠ½Π΄Π΅ΠΊΡΠ° 2 Π΄ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡ списка.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ 809 — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ, Π° 834 — Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка. РассматриваСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт списка (477).

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 477 оказался наимСньшим (Π½Π°Π·ΠΎΠ²Π΅ΠΌ это «ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ случаСм»). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ обновляСм содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… mini ΠΈ min2. Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нашли Π½ΠΎΠ²Ρ‹ΠΉ наимСньший элСмСнт.

РассматриваСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт списка (478). Он ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами (Π½Π°Π·ΠΎΠ²Π΅ΠΌ это «Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ случаСм»).

Π‘Π½ΠΎΠ²Π° обновляСм ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ обновился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ min2), ΠΈ Ρ‚. Π΄. ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ΠΌ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° списка.

Π”Π°Π»Π΅Π΅ прСдставлСн исходный тСкст Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

def find_two_smallest (L): if L[0] < L[1]:

mini, min2 = 0, 1.

# устанавливаСм Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния else:

mini, min2 = 1, 0.

for i in range (2, len (L)):

if L[i] < L[minl]: # «ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ случай» min2 = mini mini = i.

elif L[i] < L[min2]: # «Π²Ρ‚ΠΎΡ€ΠΎΠΉ случай» min2 = i.

return (mini, min2).

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ