Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2021 16:33:16

benny
Зарегистрирован: 2021-11-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленный код, nested loops

Добрый день, хотел бы попросить о помощи с кодом.
Код работает и выдает правильный output, хоть и написан он криво, брал базу для inverse permutation.
Проблема заключается в том, что данный код работает с помощью nested loops, что делает его очень медленным.
Пробовал с itertools.product, но так код ломается и выдает в output: 1
Как можно решить данный вопрос?

 numb = [int(item) for item in input().split()
n = len(numb)-1
numb.pop(0)
def InvP(numb, n):
    for i in range(0, n):  #тут же использовал itertools.product для i и j, не помогло 
        for j in range(0, n):
            if (numb[j] == i + 1):
                print(j + 1, end = " ")
                break
InvP(numb, n)
#Тестовый input/output:
#input: 6 1 3 6 2 5 4
#output: 1 4 2 6 5 3

Отредактировано benny (Ноя. 3, 2021 16:36:26)

Офлайн

#2 Ноя. 3, 2021 19:18:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Медленный код, nested loops

benny
что делает его очень медленным.
И насколько он медленный? Сколько тратится миллисекунд? Насколько это дольше чем ввод с клавиатуры последовательности при самом быстром темпе нажимания на кнопки? Какая скорость вас устроит?

Обычный порядок действий к оптимизации
0 выполнить профилирование, измерить быстродействие.
1 выбрать наиболее быстрый из известных алгоритмов для данной задачи.
2. провести оптимизацию кода.
3. перейти на другой язык программирования
4. купить более мощное железо.



Отредактировано doza_and (Ноя. 3, 2021 19:56:21)

Офлайн

#3 Ноя. 3, 2021 22:24:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Медленный код, nested loops

benny
Пробовал с itertools.product, но так код ломается и выдает в output: 1
Как можно решить данный вопрос?
Определись сначала, что ты делаешь. Потом напиши эту задачу сюда. А потом мы будем думать, как она решается.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version