递归函数,算法之二分法

聊聊递归函数和二分法

递归函数

什么是递归函数?

	"""递归就是直接或者间接调用自己的函数就是递归函数"""

递归函数的优点和缺点

 
优点:
- 可以简化代码,使程序更加简洁。
- 可以解决一些复杂的问题,比如数学上的阶乘、斐波那契数列等。

缺点:
- 可能会导致栈溢出,因为每次调用函数都需要占用一定的内存空间。
- 可能会导致程序效率低下,因为需要多次进行函数调用。

练习题:

l = [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13]]]]]]]]]]]]]

# 给打印出列表中的所有元素值,只打印除列表之外的元素,如果是列表不打印

#使用循环从列表中取出每个元素进行判断,如果该元素不是列表,则直接打印其值;
如果是列表,则不打印。
 最后得到的输出结果为:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13# for i in l:
#     # 判断是不是列表
#     if type(i) is int:
#         print(i)
#     else:
#         # 说明是列表
#         # 继续循环
#         for j in i:
#             # 判断j是不是列表
#             if type(j) is int:
#                 print(j)
#             else:
#                 # 说明是列表
#                 # 继续循环
#                 for k in j:
#                     # 判断k是不是列表
#                     if type(k) is int:
#                         print(k)
#                     else:
#                         ...


def get_num(l):
    for i in l:
        if type(i) is int:
            print(i)
        else:
            get_num(i)


get_num(l)

算法之二分法

什么是算法?
二分法是一种高效的查找算法,通常应用于有序的列表或数组中。
具体来说,它将目标值与列表中间的元素进行比较,并根据比较结果排除掉目标值不可能存在的那一半元素,从而使查找范围缩小一半。

例如,假设我们要在一个有序数组中查找某个特定的数字。首先,我们会找到数组的中间元素并将其与目标值进行比较。如果中间元素等于目标值,那么查找成功;否则,如果中间元素大于目标值,就在左半边继续查找,反之则在右半边查找。
重复上述步骤直到找到目标值或者确定目标值不存在。

总结:

	'''处理问题的高效办法'''

常见的算法:

···
	二分法:查找数据的
    冒泡算法:排序的
    选择排序:排序的
                      ...

数据结构相关的:

'''二分法的使用'''

l = [11, 2, 3,44, 567,34,78,89,111,23,34,45,56,78,66]

ll = [1,2,3,4,5,6,7,8,66,67,68,90,100,110,120]

# 找列表l中有没有66这个数字

"""for循环遍历,然后一个一个的比较"""

for i in l:
    if i == 66:
        print('在')
		break



posted @   毓见  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示