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

Найти три наименьших элемента и переставить их в начало массива

25.11.2015, 20:13. Показов 23016. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите ,пожалуйста
Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать далее в том же порядке.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .

Выходные данные
Программа должна вывести элементы полученного массива в одной строке, разделив их пробелами.

Примеры
входные данные
6
6 2 1 5 3 4
выходные данные
1 2 3 6 5 4

пытался,Но выдает ошибку во время выполнения программы на всех тестах



Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a=[] 
n=int(input())
for i in input().split():
    a.append(int(i))
b=min(a) 
c=[] 
c.append(b) 
a.remove(min(a)) 
d=min(a) 
c.append(d) 
a.remove(min(a)) 
f=min(a) 
c.append(f) 
a.remove(min(a)) 
print(*c,*a,end=' ')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2015, 20:13
Ответы с готовыми решениями:

Найти три наименьших элемента массива и переставить их в начало
Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать...

Найти три наименьших элемента массива и переставить их в начало массива
Здравствуйте, уважаемые форумчане. У меня сортирует все числа по возрастанию. Помогите с написанием программы Напишите программу,...

Найти три наименьших элемента массива и переставить их в начало массива
Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать...

11
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.11.2015, 21:08
Python
1
2
3
4
5
6
7
num = input()
l = list(map(int, input().split()))
min_three = sorted(set(l))[:3]
min_count = {num: l.count(num) for num in min_three}
 
res = [x for x in min_three for _ in range(min_count[x])] + [x for x in l if x not in min_three]
print(*res)
Code
1
2
3
4
5
6
/Users/jabbson/.virtualenvs/py35env/bin/python /Users/jabbson/PycharmProjects/various/cyber.py
6
6 2 1 5 3 4
1 2 3 6 5 4
 
Process finished with exit code 0
1
0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 50
25.11.2015, 21:17  [ТС]
ошибка во время выполнения программы на тестах сайта информатикс
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
26.11.2015, 07:06
Python
1
2
3
4
5
6
7
input()
a = input().split()
tm = sorted(a)
for i in tm[:3]:
    a.remove(i)
 
print(*(tm[:3] + a))
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
26.11.2015, 09:53
Vigi, а если 6 2 1 5 3 4 1 2?
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
26.11.2015, 11:28
а хз... не понятно как -то по условию. Там же написано, что 3 элемента. Если убрать дубли, тоже не то размер изменится.

Но ведь мой код выполняет условия три наименьших элемента в начале
Code
1
2
3
4
5
6
/usr/local/bin/python3.5 /home/vigi/Pylab/main.py
6
6 2 1 5 3 4 1 2
1 1 2 6 5 3 4 2
 
Process finished with exit code 0
Дал бы автор ссылку на саму задачу, можно было погонять тесты... (искать саму задачу лень)
0
26.11.2015, 11:31

Не по теме:

Цитата Сообщение от Vigi Посмотреть сообщение
искать саму задачу лень
я тоже пришел примерно к тому же умозаключению :D

0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
26.11.2015, 12:58

Все нашел... Тут
Не мой не ваш код не проходит:
Мой - 10 тестов прошел, Ваш - 3

Добавлено через 8 минут
6 2 1 5 3 4 1 2
наверно нужно чтоб ответ был:
1 2 3 6 5 4 1 2 но не факт... ща попробую...

Добавлено через 11 минут
попробовал:
Python
1
2
3
4
5
6
7
input()
a = input().split()
tm = sorted(list(set(a)))
for i in tm[:3]:
    a.remove(i)
 
print(*(tm[:3] + a))
Но то же не то, 3 теста всего проходит...

Добавлено через 47 минут
Вот рабочий:
Python
1
2
3
4
5
6
7
input()
a = list(map(int, input().split()))
tm = sorted(a)
ar = [str(i) for i in a]
for i in tm[:3]:
    ar.remove(str(i))
print(*(tm[:3] + ar))
проблема была в сортировке, нужно было данные int сортировать а не str

Добавлено через 11 минут
Python
1
2
3
4
5
6
input()
a = list(map(int, input().split()))
tm = sorted(a)
for i in tm[:3]:
    a.remove(i)
print(*(tm[:3] + a))
вот рабочий вариант, убрал лишнее
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
27.11.2015, 02:13
Шикарные вы ребята — для 3-х элементов сортируете весь массив… А если он огромный?
Python
3
4
5
6
7
8
9
10
b=sorted(a[:3])
for i in a[3:]:
    if b[2] > i:
        b[2] = i
        b.sort()
for j in b:
    a.remove(j)
print(b + a)
1
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
27.11.2015, 06:31
Цитата Сообщение от Marinero Посмотреть сообщение
Шикарные вы ребята
Согласен!
вывод немного подкорректировать и все нормуль.
Python
1
print(*(b + a))
Добавлено через 7 минут
Цитата Сообщение от Marinero Посмотреть сообщение
for i in a[3:]:
* * if b[2] > i:
* * * * b[2] = i
а так разве не перебор всего массива ?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
27.11.2015, 12:14
Vigi, Перебор и сортировка — разные по затратам времени операции. Кроме того, излишнее использование памяти для хранения сортированного списка (tm): если из него надо только 3 элемента, то и хранить тогда стоит только их.
Python
3
tm = sorted(a)[:3]
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
27.11.2015, 12:51
Цитата Сообщение от Marinero Посмотреть сообщение
если из него надо только 3 элемента, то и хранить тогда стоит только их.
согласен...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2015, 12:51
Помогаю со студенческими работами здесь

Найти три наименьших элемента массива и переставить их в начало массива
Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать...

Три наименьших элемента массива переставить в начало
Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать...

Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива
Написать программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать...

Найти три наименьших элемента массива
Найти три наименьших элемента массива:Z={4;-2;17;8;-3;7;0;1;5;-12;-11;-4;9} и указать их индексы Сделайте пожалуйста кто сможет,буду...

Найти три наименьших элемента массива
Задача. Найти три наименьших элемента массива:Z={4;-2;17;8;-3;7;0;1;5;-12;-11;-4;9} и указать их индексы. Посмотрите пожалуйста, это...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru