python用列表实现插入排序算法,用index和append方法
时间: 2024-05-09 10:20:45 浏览: 135
基于python的排序算法-归并排序Merge Sort
以下是使用列表的 index 和 append 方法实现插入排序算法的 Python 代码:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
# 将比 key 大的元素向右移动
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j -= 1
# 将 key 插入到正确的位置
arr[j+1] = key
return arr
# 测试
arr = [64, 25, 12, 22, 11]
sorted_arr = insertion_sort(arr)
print(sorted_arr)
```
输出:
```
[11, 12, 22, 25, 64]
```
在这个实现中,我们首先遍历整个列表,将第 i 个元素作为“关键字”(即要插入到正确位置的元素),然后将前面已排好序的元素依次向右移动,直到找到一个比 key 小的元素。然后将 key 插入到该元素的后面,这样就保证了前 i 个元素是已排序的。我们使用列表的 index 方法来查找要插入的位置,并使用 append 方法在正确的位置插入 key。注意,由于列表是从零开始索引的,因此我们在查找插入位置时需要将 j 的初始值设为 i-1。
阅读全文