题目地址: https://www.hackerrank.com/challenges/insertion-sort/problem?isFullScreen=false
翻译:计算插入排序一个长度为n的list一共需要多少次shift。栗子如下:
难度:Advanced
科普插入排序
没有什么比一个动图更能清楚了。
解题
上来先不管三七二十一,直接撸一个插入排序。
def insertionSort(arr):
ct = 0
for i in range(0,len(arr)-1):
if arr[i+1] < arr[i]: # 重点关注对象
j = i + 1
tmp = arr[j] # 哪里跑,先拧出来
while (j > 0 and tmp < arr[j-1]):