算法定义是
是将数组中所有的元素分别和前面已经排序好的元素相比较,
如果后面选择的元素比已排序的元素小,则交换位置,直至比较完成。
arr = [23,12,-2,5,66,21]
排序步骤:
①取数组的第一个元素23为已经排序好的元素,将第一个元素看作有序序列
有序部分:arr[0]
无序部分:arr[1:]
②取数组的第二个元素和有序部分的元素进行比较,12<23,所以交换俩个元素的位置,形成新的有序数组
有序部分:arr[0,1]
无序部分:arr[2:]
③依次类推,依次拿无序部分的元素和有序部分的元素进行比较,从而得到有序的数组。
代码如下:
def InsertSort(arr):
i = 1
while i < len(arr):
j = i
while j >= 1:
if arr[j] < arr[j-1]:
arr[j-1],arr[j] = arr[j],arr[j-1]
j -= 1
else:
break
i += 1
return arr
arr = [23,12,-2,5,66,21]
print(“排好序的数组:”,InsertSort(arr))
运行结果:
排好序的数组: [-2, 5, 12, 21, 23, 66]