Найти - Пользователи
Полная версия: Медленный код, nested loops
Начало » Python для новичков » Медленный код, nested loops
1
benny
Добрый день, хотел бы попросить о помощи с кодом.
Код работает и выдает правильный 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
doza_and
benny
что делает его очень медленным.
И насколько он медленный? Сколько тратится миллисекунд? Насколько это дольше чем ввод с клавиатуры последовательности при самом быстром темпе нажимания на кнопки? Какая скорость вас устроит?

Обычный порядок действий к оптимизации
0 выполнить профилирование, измерить быстродействие.
1 выбрать наиболее быстрый из известных алгоритмов для данной задачи.
2. провести оптимизацию кода.
3. перейти на другой язык программирования
4. купить более мощное железо.
py.user.next
benny
Пробовал с itertools.product, но так код ломается и выдает в output: 1
Как можно решить данный вопрос?
Определись сначала, что ты делаешь. Потом напиши эту задачу сюда. А потом мы будем думать, как она решается.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB