Сортировка вставкой должна быть хорошей, если вы решите кодировать ее самостоятельно, а не использовать функции сортировки, предоставляемые языком.
- Он отлично работает, когда список почти отсортирован (хотя он имеет порядок O (N ^ 2), если список почти отсортирован, внутренний цикл не будет выполняться часто)
- Реализовать это довольно просто.
Представляем реализацию сортировки вставкой в Python.
Программа
def InsertionSort(Array):
Total = 0
for i in xrange(1, len(Array)):
j, I, = i - 1, i
while j >= 0 and Array[I] > Array[j]:
Array[I], Array[j] = Array[j], Array[I]
j, I, Total = j - 1, I - 1, Total + 1
print "Insertion Sort Total Operations :", Total
Вывод
Наихудший случай
TestArray = range(1, 11)
InsertionSort(TestArray)
Insertion Sort Total Operations : 45
Bestcase
TestArray = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
InsertionSort(TestArray)
Insertion Sort Total Operations : 0
90% отсортированный массив
TestArray = [1, 9, 8, 7, 6, 5, 4, 3, 2, 10]
InsertionSort(TestArray)
Insertion Sort Total Operations : 17
Полусортированный массив
TestArray = [10, 9, 8, 7, 6, 1, 2, 3, 4, 5]
InsertionSort(TestArray)
Insertion Sort Total Operations : 10
person
thefourtheye
schedule
25.08.2013