首页 > 其他分享 >递归函数

递归函数

时间:2023-05-31 20:13:47浏览次数:45  
标签:递归函数 元素 列表 二分法 查找 目标值

聊聊递归函数和二分法

递归函数

什么是递归函数?

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

递归函数的优点和缺点

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

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

练习题:

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



标签:递归函数,元素,列表,二分法,查找,目标值
From: https://www.cnblogs.com/huangchunfang/p/17447103.html

相关文章

  • Python-7递归函数
    1.递归函数:自己调用自己,有来有回,一去一回"""-*-coding:utf-8-*-@FileName:recursion.py@Software:PyCharm@Time:2023/5/1016:04@Author:Panda"""#递归函数:recursion,自己调用自己,有来有回,一去一回defrecursion(n):print("未调用前{}"......
  • 递归函数
    1.递归函数简单实例:2.递归函数注意点:python默认递归1000次 3.递归的两个阶段:回溯和递推 4.递归的实际应用场景:取出列表中所有的值 ......
  • 递归函数
    自己调用自己官方最大递归深度1000次fromsysimportsetrecursionlimit导入sys模块中可以设置递归函数 ......
  • python14:递归函数
    概念:在一个函数内部不调用其他函数,而是自己本身的话,这个函数就是递归函数。优点:看起来简单缺点:容易导致栈溢出,占内存。例子:defjiecheng(n):#result=1#foriteminrange(1,n+1):#result*=item#pass#returnresult##print('结果为:{}'.form......
  • LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手。往期周赛回顾:LeetCode单周赛第343场·结合「下一个排列」的贪心构造问题周赛概览T1.找出不......
  • 【web 开发基础】PHP 中的递归函数
    前言什么是递归?递归做为一种算法在程序设计语言中广泛应用。所谓的递归简单地概括就是程序调用自身的编程技巧称为递归(recursion)。递归在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学......
  • JS函数:递归函数与迭代函数
    1.递归函数:程序中调用自己的函数程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归......
  • 将一个多维数组整合成树形结构,可以通过递归函数来实现
    functionbuildTree(arr,parentId=null){lettree=[];for(leti=0;i<arr.length;i++){letitem=arr[i];if(item.parentId===parentId......
  • 递归函数
    递归函数目录递归函数1.什么是递归函数2、递归函数有啥优缺点3、通过实例来介绍函数递归:1.什么是递归函数​ 在函数内部,可以调用其他函数,如果一个函数在内部调用自......
  • 递归函数
    就是函数自己调用自己举个例子,阶乘:packagemainimport"fmt"//3!=3*2*1=3*2!//4!=4*3*2*1=4*3!//5!=5*4*3*2*1=5*4!funcf1(nint)int{ifn......