2021-04-18

函数

定义

函数是指⼀段可以直接被另⼀段程序或代码引⽤的程序或代码。也叫做⼦程序、⽅法。
⼀个较⼤的程序⼀般应分为若⼲个程序块,每⼀个模块⽤来实现⼀个特定的功能。所有的⾼级语⾔中都有⼦程序这个概念,⽤⼦程序实现模块的功能。在C语⾔中,⼦程序的作⽤是由⼀个主函数和若⼲个函数构成。由主函数调⽤其他函数,其他函数也可以互相调⽤。同⼀个函数可以被⼀个或多个函数调⽤任意
多次。
在程序设计中,常将⼀些常⽤的功能模块编写成函数,放在函数库中供公共选⽤。要善于利⽤函数,以减少重复编写程序段的⼯作量。

种类

函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷⻉构造函数、成员函数、友元函数、运算符重载函数、内联函数等。

递归

定义

递归的能⼒在于⽤有限的语句来定义对象的⽆限集合。⼀般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满⾜时,
递归前进;当边界条件满⾜时,递归返回。

三要素

1、明确递归终⽌条件;
2、给出递归终⽌时的处理办法;
3、提取重复的逻辑,缩⼩问题规模
递归实现数的阶乘:

def recursion(n):
 if(n==0):
 return 0
 if(n==1):#递归终⽌条件
 return 1 #终⽌时不再向下传递,⽽是进⾏合适的操作。
 else:
 return (n*recursion(n-1)) #⽐如阶乘的逻辑 n! = n*n-1*(n-1)-1*...

递归实现数的幂

def power(n, k):
 if(k==0):
 return 1
 if(k==1):
 return n
 return n*power(n, k-1)

递归练习

a是⼀个数组, b也是⼀个数组,b中的数据是a中的数据逐项累加得到的。
尝试使⽤递归实现
a=[x1,x2,x3,x4,x5,x6]
y1=x1
y2=x1+x2
y3=x1+x2+x3
······
yn=x1+x2+·······+xn
b=[y1,y2,·······yn]

a = [1, 2, 3, 4, 5, 6, 7]
b = []
def fun(a, b):
    if len(b) == 0:
        b.append(a[0])
    if len(b) < len(a):
        b.append(0)
        b[len(b) - 1] = b[len(b) - 2] + a[len(b) - 1]
        return fun(a,b)
    else:
        print(b)
        
        
print(fun(a, b))

二分查找法

def serach(array, t):
  array.sort() #排序,保证列表是有序的
  low = 0
  height = len(array) - 1
  while low <= height:
    k = (low + height) // 2
    if array[k] < t:
      low = k + 1
    elif array[k] > t:
      height = k - 1
    else:
      return k #找到后返回位置
  return -1 #找不到返回-1
array = [1, 3, 5, 7, 9, 6, 8, 0]
print(serach(array, 5))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值