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

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

23.03.2021, 14:42. Показов 18527. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,307
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
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,307
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
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,307
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
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 15.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru