希尔排序和快速排序的例题
时间: 2025-01-22 10:43:28 浏览: 48
### 希尔排序示例题目
对于希尔排序,一个常见的练习场景是对一组整数进行升序排列。给定如下未排序数组:
```python
arr = [8, 9, 3, 5, 1, 7, 0, 2]
```
#### Python 实现代码
```python
def shell_sort(arr):
n = len(arr)
gap = n // 2
while gap > 0:
for i in range(gap, n):
temp = arr[i]
j = i
while j >= gap and arr[j - gap]
j -= gap
arr[j] = temp
gap //= 2
return arr
unsorted_array = [8, 9, 3, 5, 1, 7, 0, 2]
print(shell_sort(unsorted_array))
```
此段代码展示了如何利用希尔排序来对上述列表中的元素按照从小到大的顺序进行整理[^1]。
### 快速排序示例题目
快速排序同样适用于类似的整数排序问题。这里给出另一个例子,即对下面这个无序集合执行降序排序操作:
```python
arr = [4, 6, 8, 3, 7, 9, 2, 1]
```
#### Python 实现代码
```python
def quick_sort_descending(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[len(arr) // 2]
left = [x for x in arr if x > pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x < pivot]
return quick_sort_descending(left) + middle + quick_sort_descending(right)
unordered_list = [4, 6, 8, 3, 7, 9, 2, 1]
result = quick_sort_descending(unordered_list)
print(result[::-1]) # 输出逆序的结果以满足降序需求
```
这段程序实现了基于快速排序算法的降序排列功能。
阅读全文
相关推荐



















