运用递归函数编程实现对列表中数据的排序升序或者降序,用Python解决
时间: 2024-10-18 21:08:10 浏览: 15
对python实现合并两个排序链表的方法详解
在Python中,我们可以使用递归函数结合内置的`sorted()`函数或`list.sort()`方法来对列表中的数据进行排序。这里以递归的方式来实现冒泡排序为例,因为它是递归的一种经典应用。以下是分别实现升序和降序排序的例子:
**升序排序(递归版冒泡排序):**
```python
def bubble_sort_recursive(arr, n=None):
# 如果数组只有一个元素或为空,则已经是有序的
if len(arr) <= 1 or n is None:
return arr
else:
# 比较相邻元素并交换,如果当前元素大于下一个元素
if arr[0] > arr[1]:
arr[0], arr[1] = arr[1], arr[0]
# 对剩余的n-1个元素递归调用
return bubble_sort_recursive(arr[1:], n - 1)
# 使用示例
data = [5, 3, 8, 1, 9]
sorted_data_asc = bubble_sort_recursive(data)
print("升序排序后的列表:", sorted_data_asc)
```
**降序排序(递归版冒泡排序):**
```python
def bubble_sort_descending(arr, n=None):
# 变更比较条件为当前元素小于下一个元素则交换
if len(arr) <= 1 or n is None:
return arr
elif arr[0] < arr[1]: # 修改这里为降序排列
arr[0], arr[1] = arr[1], arr[0]
return bubble_sort_descending(arr[1:], n - 1)
# 使用示例
data = [5, 3, 8, 1, 9]
sorted_data_desc = bubble_sort_descending(data)
print("降序排序后的列表:", sorted_data_desc)
```
阅读全文