用python编写希尔排序
时间: 2024-10-14 22:02:03 浏览: 29
Python实现的选择排序算法示例
希尔排序(Shell Sort),也称为缩小增量排序,是一种基于插入排序的高效算法改进版本。它的基本思想是先将待排序数组按照一定增量分组,对每组进行插入排序,然后逐渐减小增量直到为1,最终得到完全有序的序列。
以下是用Python实现希尔排序的一个简单示例:
```python
def shell_sort(arr):
# 所有元素都是初始增量的一部分
gap = len(arr) // 2
while gap > 0:
for i in range(gap, len(arr)):
temp = arr[i]
j = i
# 使用gap逐步缩小增量,进行插入排序
while j >= gap and arr[j - gap] > temp:
arr[j] = arr[j - gap]
j -= gap
# 将temp放在正确的位置
arr[j] = temp
# 更新增量,进入下一轮循环
gap //= 2
return arr
# 示例
arr = [9, 7, 5, 11, 12, 2, 14, 3, 10, 6]
sorted_arr = shell_sort(arr)
print("排序后的数组:", sorted_arr)
阅读全文