直接插入排序python代码
时间: 2024-08-15 12:09:18 浏览: 67
直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。以下是Python实现直接插入排序的一个例子:
```python
def insertion_sort(arr):
# 遍历数组
for i in range(1, len(arr)):
key = arr[i] # 当前元素
j = i - 1 # 已排序部分的最后一个元素
# 将key逐个比较并插入到正确的位置
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j] # 向右移动较大的元素
j -= 1 # 移动索引
arr[j + 1] = key # 插入关键值
return arr
# 示例
arr = [12, 11, 13, 5, 6]
sorted_arr = insertion_sort(arr)
print("Sorted array:", sorted_arr)
相关问题
python冒泡排序,与直接插入排序算法代码实现
好的,下面给您展示 Python 实现的冒泡排序和直接插入排序算法的代码。
1. 冒泡排序
```
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后i个元素已经排好序,无需再比较
for j in range(n-i-1):
# 如果当前元素大于下一个元素,则交换它们的位置
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 测试
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:", arr)
```
2. 直接插入排序
```
def insertion_sort(arr):
n = len(arr)
# 从第二个元素开始遍历
for i in range(1, n):
# 当前元素与已排序序列进行比较,找到插入位置
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 = [64, 34, 25, 12, 22, 11, 90]
insertion_sort(arr)
print("排序后的数组:", arr)
```
以上是冒泡排序和直接插入排序算法的 Python 实现。希望对您有所帮助。
python直接插入排序
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指的是手里的牌的下标。在每次循环中,将当前摸到的牌与手里的牌从后往前依次比较,如果手里的牌比当前摸到的牌大,则将手里的牌往后移动一位,直到找到一个比当前摸到的牌小的位置,将当前摸到的牌插入到这个位置。
阅读全文