Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/75: Рейтинг темы: голосов - 75, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 17

Вывести второе минимальное число в списке

23.03.2021, 14:42. Показов 18060. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Список из 10 элементов заполняется целыми числами. Вывести второе минимальное число в списке.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2021, 14:42
Ответы с готовыми решениями:

Если второе число равно первому и оба нечетные, то вывести второе число
Написать программу, которая требует ввести первое и второе число оба целые, больше нуля, далее если второе число больше первого программа...

Получить из первого слова второе за минимальное число операций
Здравствуйте! Решил полностью запрограммировать алгоритм вот по этой ссылке: https://www.youtube.com/watch?v=We3YDTzNXEk Потратил время....

Как найти второе минимальное число из рандомных в массиве?
public static void main(String args) { int array1 = generateArray(20); } public static int generateArray(int size) { ...

23
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 15:48
Python
1
print(__import__("heapq").nsmallest(2, map(int, input().split()))[-1])
2
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
23.03.2021, 15:52
Python
1
2
3
4
5
6
7
a = [1, 2, 3, 4, 5, 6]
k = min(a)
for i in range(len(a)):
    if a[i] == k:
        a.pop(i)
        break
print(min(a))
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 15:54
Цитата Сообщение от alilxxey Посмотреть сообщение
a.pop(i)
На будущее: удаление элемента из середины (начала) списка выполняется за линейное время O(N).
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
23.03.2021, 16:13
а почему просто не sorted(a_list)[1] ?
1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
23.03.2021, 16:15
Welemir1, это слишком гениально для нас
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
23.03.2021, 17:57
Цитата Сообщение от Welemir1 Посмотреть сообщение
а почему просто не sorted(a_list)[1]
не прокатит.

Python
1
a = [1, 1, 1, 2, 3, 4, 5, 6]
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 18:15
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
не прокатит.
Прокатит, просто медленно.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.03.2021, 18:23
Цитата Сообщение от Arsegg Посмотреть сообщение
Прокатит, просто медленно.
Интересно, только сегодня просматривал данный модуль, вот о чем
я был проинформирован при прочтении:
Функции nlargest() и nsmallest() лучше всего подходят, если вы пытаетесь найти
относительно небольшое количество элементов. Если же вы просто хотите найти
один наибольший или наименьший элемент (N = 1), функции min() и max() бу-
дут быстрее. Похожим образом, если N сопоставимо с размером самой коллек-
ции, обычно будет быстрее отсортировать их и взять срез (то есть выполнить
sorted(items)[:N] или sorted(items)[-N:]). Стоит отметить, что реализация nlargest()
и nsmallest() в модуле heapq работает гибко и выполняет некоторые из этих опти-
мизаций самостоятельно (например, использует сортировку, если размер N бли-
зок к размеру входных данных).
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 18:29
AlexMarkov, смотри: под капотом куча. 2 - размер кучи. N - размер списка. 2 << N (сильно меньше) => быстрее пройтись по списку и добавлять (заменять) элементы в куче за O(log(2)) => Общая асимтотика: O(N), т. к. log(2) - константа, в большом O она не фигурирует.
P. S. Хотя тут на самом деле двояко: на 10 элементах, возможно, быстрее будет отсортировать квадратичной сортировкой, например, выбором => выйдет быстрее аналогичных (за O(N * log(N))). Нужно смотреть более детально.
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.03.2021, 18:30
Делаю вывод, что решение alilxxey, "прокатит по быстрее".
Был бы рад увидеть доказательства или услышать, другие точки зрения
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.03.2021, 18:32
нужно не второй минимальный элемент находить, а второе минимальное число которого в списке может и не быть.
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 18:33
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Был бы рад увидеть доказательства или услышать,другие точки зрения
Тут не может быть других точек зрения, кроме практического "доказательства":
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
In [1]: from random import randrange
 
In [2]: a = [randrange(-1_000, 1_000) for _ in range(10)]
 
In [3]: from heapq import nsmallest
 
In [4]: %timeit nsmallest(2, a)[-1]
4.69 µs ± 79.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
 
In [5]: %timeit sorted(a)[1]
618 ns ± 3.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
 
In [6]: print(*a)
-765 -671 -730 -578 649 -620 -631 512 -764 839
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.03.2021, 18:33
Arsegg, одновременно набирал текст, поэтому данная тематика относиться к выше представленному
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 18:35
Nuff said:
Python
1
2
3
4
5
6
7
In [7]: a = [randrange(-1_000, 1_000) for _ in range(100_000)]
 
In [8]: %timeit nsmallest(2, a)[-1]
7.3 ms ± 171 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
 
In [9]: %timeit sorted(a)[1]
28.1 ms ± 176 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
23.03.2021, 18:39
Цитата Сообщение от Arsegg Посмотреть сообщение
Прокатит, просто медленно
как?
Цитата Сообщение от dasdads Посмотреть сообщение
второе минимальное
кто сказал что в списке одно первое минимальное? пример (список после сортировки)
Python
1
a = [1, 1, 1, 2, 3, 4, 5, 6]
первое минимальное это 1 а второе минимальное это 2

Python
1
2
3
4
5
a = sorted([3, 4, 1, 1, 1, 2, 5, 6])
for i in a[1:]:
    if i != a[0]:
        print(i)
        break
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 18:42
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
как?
Посмотрите выше замеры timeit, если не верите - повторите. С некоторой константы использование кучи дает значительный буст в скорости.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.03.2021, 18:44
Мои результаты:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
In [1]: from random import randrange
 
In [2]: a = [randrange(-1_000, 1_000) for _ in range(10)]
 
In [3]: from heapq import nsmallest
 
In [4]: %timeit nsmallest(2, a)[-1]
3.17 µs ± 61.8 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
 
In [5]: %timeit sorted(a)[1]
347 ns ± 4.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
 
In [6]: print(*a)
523 -196 -456 989 -534 -713 506 -48 -580 853
 
In [7]: a = [randrange(-1_000, 1_000) for _ in range(100_000)]
 
In [8]: %timeit nsmallest(2, a)[-1]
4.41 ms ± 171 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
 
In [9]: %timeit sorted(a)[1]
26.9 ms ± 451 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
23.03.2021, 18:59
Arsegg, мы немного не поняли друг друга. я относительно
Цитата Сообщение от Welemir1 Посмотреть сообщение
а почему просто не sorted(a_list)[1] ?
написал что не прокатит потому что в списке может быть не один первый минимальный а не к вопросу сортировки.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
23.03.2021, 19:06
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
написал что не прокатит потому что в списке может быть не один первый минимальный а не к вопросу сортировки.
В списке 10 элементов, как может не прокатить? Если несколько элементов подходят под условие - выводим первый.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2021, 19:06
Помогаю со студенческими работами здесь

Найти максимальное число, минимальное число в списке
Сгенерировать список (Длина N = 10) рандомных чисел. Найти максимальное число, минимальное число. Создать еще один список и заполнить его...

минимальное число ходов, которые нужны шахматному коню для перехода с первого поля на второе
Даны обозначения двух полей шахматной доски (например, A5 и C2). Найти минимальное число ходов, которые нужны шахматному...

Найти минимальное число ходов, которые нужны шахматному коню для перехода с первого поля на второе
Даны 2 поля шахматной доски,найти минимальное число ходов, которые нужны шахматному коню для перехода с 1-го поля на 2-е.

Найти минимальное число ходов, которые нужны шахматному коню для перехода с первого поля на второе
Ввод: input.txt Вывод: output.txt Даны обозначения двух полей шахматной доски (например, A5 и C2). Найти минимальное...

Если первое число окажется кратным 5 или второе число будет нечетным, то вывести на экран сумму их модулей
4. Даны два числа N и М. Если первое число окажется кратным 5 или второе число будет нечетным, то вывести на экран сумму модулей заданных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru