首页 > 编程语言 >贪心算法初讲1

贪心算法初讲1

时间:2022-10-14 10:47:33浏览次数:84  
标签:问题 复杂度 选择 算法 数学 贪心

 

2.1.1 贪心的基本思想:“ 只顾眼前 ” 保证局部最优;

   贪心的特点:1. 步步最优 2 .进行贪心策略的选择时要经过数学证明 3 . 算法简单,选择一但做出不可回溯;

      举例子: 钱币选择是否可以用贪心,以及贪心的选择;

举反例 得出结论

该算法存在问题:

1). 不能保证求得的最后解是最佳的;

2). 不能用来求最大或最小解问题;

3). 只能求满足某些约束条件的可行解的范围。

Dijkstra算法、Prim算法和Kruskal算法都属于典型的贪心算法

举例:活动安排问题 :(110条消息) 经典贪心算法问题:会议安排_Hi丶ImViper的博客-CSDN博客_会议时间 贪心

进行伪码的分析,和时间复杂度的分析sort默认为快排模板时间复杂度为 0(nlogn) , 

数学递推证明:

任何子问题都适合这个贪心模型。

数学推举反证;

 

标签:问题,复杂度,选择,算法,数学,贪心
From: https://www.cnblogs.com/Mr-yinghexiaoma/p/16790823.html

相关文章

  • leetcode必备算法:聊聊滑动窗口
    前言我们刷leetcode的时候,经常会遇到滑动窗口类型题目。滑动窗口问题非常经典,也很有技巧性,一般大厂也喜欢问。今天跟大家一起来学习滑动窗口的套路,文章如果有不正确的地方,......
  • 代码随想录训练营|Day 24|回溯算法,77
    回溯算法理论基础回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如......
  • 【算法训练营day2】LeetCode977. 有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵
    【算法训练营day2】LeetCode977.有序数组的平方209.长度最小的子数组59.螺旋矩阵IILeetCode977.有序数组的平方题目链接:977.有序数组的平方初次尝试上来看到建......
  • K-means算法
    K-means算法是一种无监督算法,需要首先确定将要分成的聚类数k,随机选k个点(称为聚类点),样本点分配给离聚类点最近的那个聚类,然后每个聚类的mean设为新的聚类的点,一直更新直到损......
  • 进入python的世界_day14_python基础——算法、三元表达式、生成式、匿名函数
    一、算法1.介绍​ 算法是通过数学模型运算得到某些数据的过程,在python中通过与代码相结合,可以在特定场景下很方便的解决问题2.应用场景​ 很广,大数据推广就是利用算......
  • GO 学习之实现的二分查找算法
    packagemainimport"fmt"varindexintfuncmain(){ //有序数组 vararray=[17]int{2,5,8,14,15,18,19,20,29,34,55,56,57,58,59,60,67} va......
  • 算法和常见内置函数
    算法和常见内置函数算法简介及二分法什么是算法1.算法​ 算法就是解决问题的有效方法,不是所有的算法嗾很高效也有不合格的算法2.算法应用场景​ 推荐算法:(抖音视频推......
  • python算法简介与各种生成式
    今日内容概要算法简介及二分法三元表达式各种生成式匿名函数重要内置函数常见内置函数今日内容详细算法简介及二分法1.什么是算法 算法就是解决问题的有校......
  • python函数及算法
    算法二分法二分算法图什么是算法?​ 算法是高效解决问题的办法。需求:有一个按照从小到大顺序排列的数字列表,查找某一个数字#定义一个无序的列表nums=[3,4,5,67,......
  • 计算空间物体包围球的两种算法实现
    详细介绍了计算空间包围球的两种算法。1.概述在进行二维空间几何运算的之前,往往会用包围盒进行快速碰撞检测,从而筛掉一些无法碰撞到的可能。而在三......