2021-04-19 算法

函数与递归+分治算法

1.函数简介

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

构造函数:
def 函数名(参数):

2.递归思想

递归
‘’’
递归的能⼒在于⽤有限的语句来定义对象的⽆限集合。⼀般来说,递
归需要有边界条件、递归前进段和递归返回段。当边界条件不满⾜时,
递归前进;当边界条件满⾜时,递归返回。
递归三要素:
1、明确递归终⽌条件;
2、给出递归终⽌时的处理办法;
3、提取重复的逻辑,缩⼩问题规模。

作业:

a = [1,5,3,8,0,0,7]
b=[]
def addfun(a, b):
    if len(b) == 0:
    b.append(a[0])
    elif len(b) < len(a):
    b.append(0)
    b[len(b)-1] = a[len(b)-2] + a[len(b)-1]
    return addfun(a,b)
    else:
    return b
    

二分查找:


def middle_search(find, L) :
  low = 0
  high = len(L)
  while low < high :
    mid = int((low + high) / 2)#一分为二
 
    if L[mid] == find :
      return mid
    #左半边
    elif L[mid] > find :
      high = mid - 1
    #右半边
    else :
      low = mid + 1
  #未找到返回-1
  return -1

3.分治算法

一.归并排序
在这里插入图片描述
二.快速排序
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值