#python #sorting
Вопрос:
Чтобы попрактиковаться в кодировании, я написал сортировку вставки и сортировку выбора на Python. Вот сортировка вставки:
def insertion(L, i): a = L[i 1] for index in range(i 1): if L[index] gt; a: break else: index = i 1 for k in range(i 1, index, -1): L[k] = L[k - 1] L[index] = a return L def insertion_sort(L): for i in range(len(L) - 1): L = insertion(L, i) return L
Вот сортировка выбора:
def selection_sort(L): for i in range(len(L) - 1): _min = i for j in range(i 1, len(L)): if L[j] lt; L[_min]: _min = j L[_min], L[i] = L[i], L[_min] return L
Затем я использую N = 10000;L = [i для i в диапазоне(N, 0, -1)], чтобы создать наихудший случай. С моей точки зрения, сортировка вставки выполняется быстрее, чем сортировка выбора, потому что время сравнения выбора составляет 49 995 000, в то время как вставка выполняется всего 9999 раз. Но когда я использую
import time start = time.time() …… end = time.time()
чтобы измерить время, в результате сортировка вставки выполняется медленнее, чем сортировка выбора. Я неправильно понимаю время сравнения?