- подправить ошибки;
- время выполнения алгоритма правильно замеряю?
- время операций питона больше, чем у других языков?
import random, datetime l = [] def createrandom(): for i in range(1, 2000): l.append(random.randint(-9900, 9900)) #l.append(-99) def sort1(): #print ('Н: ' + str(l)) i_maxrange = len(l) - 1 isWasSort = False # Количество циклов for o in range(1, len(l)): isWasSort = False for i in range(0, i_maxrange): if (l[i] > l[i+1]): temp = l[i] l[i] = l[i+1] l[i+1] = temp isWasSort = True #print (str(o) + ')', l) i_maxrange -= 1 if (not isWasSort): break #print (str(len(l)) + ' чисел в последовательности, ' + str(o) + ' циклов, ' + str(i + 1) + ' итераций в последнем') createrandom() start = datetime.datetime.now() sort1() end = datetime.datetime.now() print(end - start)
На хабре у парня выходит “около 25 мс на размере 2000 элементов”. У меня же около 1 секунды и 300 мс. Хотелось бы знать почему.
http://habrahabr.ru/post/204600/#comment_7058336
Из поста ТК не понятно какая у него версия.