思路:
将数组中的数据从第二位开始向前找到合适的位置插入,依次将前边的元素向后移。
代码:
class insertsort(object):
def sort(self, nums):
# 从第二个位置开始,将元素向前边的插入到合适的位置
for i in range(1,len(nums)):
j = i - 1
key = nums[i]
while j >= 0 and key < nums[j]: # j从第i个位置向前比较如果比前边数小向后移
nums[j+1] = nums[j]
j -= 1
nums[j+1] = key
print(nums)
return nums
i = insertsort()
i.sort(nums=[11,23,7,3,66])
时间复杂度:O(n^2)
空间复杂度:O(1)