使用插入排序对给定数组从小到大排序,不需要输出排序后的数组,需输出从第二个元素开始每个元素 插入的的位置。
时间: 2024-03-12 20:44:37 浏览: 52
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
好的,以下是使用Python实现这个任务的代码:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
j = i - 1
key = arr[i]
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
print(f"Insert {key} at position {j+1}")
# 测试代码
arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
```
在这个代码中,我们定义了一个`insertion_sort`函数,它接收一个数组作为输入,并对这个数组进行插入排序。在排序的过程中,我们记录每个元素插入的位置,最后输出即可。
运行以上代码,输出结果为:
```
Insert 11 at position 0
Insert 13 at position 2
Insert 5 at position 0
Insert 6 at position 1
```
这里使用了`f-string`来格式化输出语句,如果使用的Python版本低于3.6,可以使用`str.format()`方法来实现同样的效果。
阅读全文