python直接插入排序
时间: 2023-11-14 07:11:56 浏览: 92
Python直接插入排序是一种稳定的排序算法,它的基本思想是将一个未排序的数据插入到已排序序列中,插入的方式是从后到前依次比较和交换。Python实现直接插入排序的代码如下:
def insert_sort(li):
for i in range(1, len(li)):
tmp = li[i]
j = i - 1
while j >= 0 and li[j] > tmp:
li[j+1] = li[j]
j -= 1
li[j+1] = tmp
return li
其中,li是待排序的列表,i表示摸到的牌的下标,tmp是当前摸到的牌,j指的是手里的牌的下标。在每次循环中,将当前摸到的牌与手里的牌从后往前依次比较,如果手里的牌比当前摸到的牌大,则将手里的牌往后移动一位,直到找到一个比当前摸到的牌小的位置,将当前摸到的牌插入到这个位置。
相关问题
利用python直接插入排序算法对数列3,4,6,2,5,7,1,,0.6进行排序
好的,我可以为您演示如何使用Python编写插入排序算法来对这个数列进行排序。以下是代码示例:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
# 测试排序算法
arr = [3, 4, 6, 2, 5, 7, 1, 0.6]
insertion_sort(arr)
print(arr)
```
运行以上代码,输出结果如下:
```
[0.6, 1, 2, 3, 4, 5, 6, 7]
```
可以看到,该算法已经成功地将数列进行了排序。
利用python直接插入排序算法对数列3,4,6,2,5,7,1,,0.6进行排序,展示每一趟结果
好的,为了展示每一趟排序的结果,我们可以在排序的过程中添加一些打印语句。以下是修改后的代码示例:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
print(f"第{i}趟排序结果: {arr}")
# 测试排序算法
arr = [3, 4, 6, 2, 5, 7, 1, 0.6]
insertion_sort(arr)
print(f"最终排序结果: {arr}")
```
运行以上代码,输出结果如下:
```
第1趟排序结果: [3, 4, 6, 2, 5, 7, 1, 0.6]
第2趟排序结果: [3, 4, 6, 2, 5, 7, 1, 0.6]
第3趟排序结果: [2, 3, 4, 6, 5, 7, 1, 0.6]
第4趟排序结果: [2, 3, 4, 5, 6, 7, 1, 0.6]
第5趟排序结果: [2, 3, 4, 5, 6, 7, 1, 0.6]
第6趟排序结果: [1, 2, 3, 4, 5, 6, 7, 0.6]
第7趟排序结果: [0.6, 1, 2, 3, 4, 5, 6, 7]
最终排序结果: [0.6, 1, 2, 3, 4, 5, 6, 7]
```
可以看到,每一趟排序的结果都被成功地打印出来了。
阅读全文