python_冒泡/递归

本文通过具体的代码示例介绍了冒泡排序算法的实现过程,并展示了如何使用递归函数进行1到100的求和计算。此外,还提供了一个简单的递归函数示例,用于展示递归的基本原理。
li = [33,22,10,1]
#外部循实现整体排序
for j in range(1,len(li)-1):
    #内部循环实现第一次排序[22,10,1,33]
    for i in range(len(li)-j):
        if li[i]>li[i+1]:
            li[i],li[i+1]=li[i+1],li[i]

递归:

#1-100求和
def f(i):
    if i==1:
        return 1
    sum = i+f(i-1)
    return sum
#函数
def c(deep,a1,a2):
    print(deep)
    if deep==10:
        return a1
    a3=a1+a2
    r=c(deep+1,a2,a3)
    return r


### Python 实现递归版本的冒泡排序 尽管冒泡排序通常以迭代形式实现,但它也可以通过递归来完成。以下是基于递归方法的冒泡排序算法的具体实现: #### 什么是递归冒泡排序? 递归冒泡排序的核心思想是每次比较相邻两个元素并交换它们的位置,使得较大的元素逐步移动到列表的末尾。这一过程可以通过递归调用来替代传统的循环结构[^1]。 #### 算法描述 在一个长度为 `n` 的数组中: - 如果当前索引小于等于最后一个未排序项,则继续执行。 - 对于每一对相邻元素 `(i, i+1)`,如果前一项大于后一项则交换两者位置。 - 当一次完整的遍历完成后,最大的元素会被放置到最后一位。 - 减少范围重复上述操作直到整个序列有序为止。 下面是具体的代码实现: ```python def recursive_bubble_sort(arr, n=None): if n is None: n = len(arr) # Base case: If the array size is 1 or less, it's already sorted. if n == 1: return # Perform one pass of bubble sort up to the nth element. for i in range(n - 1): if arr[i] > arr[i + 1]: arr[i], arr[i + 1] = arr[i + 1], arr[i] # Recursively call the function with a reduced problem size (excluding last element). recursive_bubble_sort(arr, n - 1) ``` 此函数接受一个待排序的数组以及可选参数 `n` 表示剩余需要处理的部分大小。如果没有提供 `n` 值,默认取整个数组长度作为初始输入[^2]。 为了验证其功能可以运行如下测试例子: ```python example_array = [64, 34, 25, 12, 22, 11, 90] print("Original Array:", example_array) recursive_bubble_sort(example_array) print("Sorted Array:", example_array) ``` 以上程序会输出原始和经过排序后的数组状态来展示效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值