相关知识
Insertion Sort 和打扑克牌时,从牌桌上逐一拿起扑克牌,在手上排序的过程相同。
举例:
输入: {5 2 4 6 1 3}。
首先拿起第一张牌, 手上有 {5}。
拿起第二张牌 2, 把 2 insert 到手上的牌 {5}, 得到 {2 5}。
拿起第三张牌 4, 把 4 insert 到手上的牌 {2 5}, 得到 {2 4 5}。
以此类推。
算法步骤:
- 从第一个元素开始,该元素可以认为已经被排序;
- 取出下一个元素,在已经排序的元素序列中从后向前扫描;
- 如果该元素(已排序)大于新元素,将该元素移到下一位置;
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
- 将新元素插入到该位置后;
- 重复步骤2~5。
编程要求
根据提示,在右侧编辑器补充代码,实现冒泡排序,并输出排序过程。
测试说明
测试输入:9,1,8,4,3,2
预期输出: [1, 9, 8, 4, 3, 2]
[1, 8, 9, 4, 3, 2]
[1, 4, 8, 9, 3, 2]
[1, 3, 4, 8, 9, 2]
[1, 2, 3, 4, 8, 9]
排序之后的结果为:[1, 2, 3, 4, 8, 9]
def insertionSort(a):
##请完成本函数
for i in range(1,len(a)):
key=array[i]
j=i-1
while j>=0 and key <array[j]:
array[j+1]=array[j]
j-=1
array[j+1]=key
print(a)
return a
if __name__ == '__main__':
arraystr = input().split(',')
array = [int(i) for i in arraystr]
print("排序之后的结果为:{}".format(insertionSort(array)))