算法设计课程报告(C++实现贪心算法)

声明:本报告比较简单,仅供参考哦!!

报告内容(主要包括四个方面的内容):

1、算法设计简介;

2、可以自行选择几种感兴趣的算法进行简介和分析;也可以针对以下给出的算法设计题,任选一题,完成编码任务,给出运行结果;

3、学习算法的心得体会;

4、参考文献

最小正整数问题

问题描述:键盘输入一个高精度的正整数 n(n<10位 ) , 去掉任意 s 个数字后剩下的数字按原左右次序组成一个新的正整数,寻求一种方案,使得新的正整数最小。

问题分析

1) 贪心法求解:删 k 个数符的全局最优解,包含了删除 1个数符的子问题的最优解。

2) 以字符串形式输入 s ,使用尽可能逼近目标的贪心法来逐一删去其中的 k 个数符, 每一步总是选择一个能使剩下的数最小的数符删去。


 

 

摘要:算法是解决特定问题的描述,在计算机领域当中,算法显得尤为重要。本文就算法的定义、特征以及发展历程进行描述,并列举了常见的算法思想。然后利用贪心算法来解决实际问题,最后谈谈自己学习贪心算法心得体会。

关键词:算法定义;算法特征;算法发展历程;贪心算法;心得体会

 

目录

1 算法设计简介

1.1 算法的定义

1.2 算法的特征

1.3 算法的发展流程

1.4 常见的算法

1.4.1 递归法

1.4.2 枚举法

1.4.3 迭代法

2 贪心算法

2.1 贪心算法简介

2.2 贪心算法的基本要素

2.3 贪心算法的问题描述

2.4 编码实现

2.5 运行结果

3 学习心得体会

参考文献


 

1 算法设计简介

1.1 算法的定义

算法是解决特定问题求解决步骤的描述,再计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做T(n)=Ο(f(n))。而算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

另外,算法的正确性、可读性以及健壮性也是判定算法优劣的重要标准。

1.2 算法的特征

算法的特征可分为输入、输出、有穷性、确定性以及可行性。

  1. 输入:算法具有零个或多个输入
  2. 输出:算法至少有一个或多个输出
  3. 有穷性:指算法再执行有限的步骤之后,自动结束而不会出现无心循环,并且每一个步骤再可接受的时间内完成
  4. 确定性:算法的每一个步骤都具有确定的意义,不会出现二义性
  5. 可行性:算法的每一步都必须是可行的,也就是说,每一步都能通过执行有限次数完成<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬核的无脸man~

你的鼓励是我创作的最大功力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值