算法初步 --- day1-1

本文探讨了算法的本质,通过一个具体的7升和5升桶倒水问题,展示了如何通过明确的步骤解决此类问题。并进一步提出了面对对象编程的思想,将问题抽象为一般形式——两个容量分别为n升和m升的桶如何倒腾出k升水。这种抽象能力是算法设计的关键,可以方便地应用于类似问题。
摘要由CSDN通过智能技术生成

#算法是什么?

算法:有明确的操作步骤,可重复用于解决相同的问题

#什么是计算机算法?

我们的目标是:从特殊到一般的追求

例如:两只没有刻度的桶A和B,其中A的容量为7升,B的容量为5升。问:如何通过相互之间的倒腾,量出6升的水来?

你可以写一个有明确操作步骤的解决方案,用于解决该问题:

1.先装满A桶
2.A倒满B,余下的水保留
3.倒空B,将A余下的水倒入B
4.重复上述步骤1.2.3一次
5.装满A,然后用A装满B,此时A余下的水为6升

那如果下次你遇到“类似”的问题:

1.两只没有刻度的桶A和B,其中A的容量为10升,B的容量为3升。问:如何通过相互之间的倒腾,量出6升的水来?

2.两只没有刻度的桶A和B,其中A的容量为8升,B的容量为4升。问:如何通过相互之间的倒腾,量出6升的水来?

你应该怎么办?再次写一个步骤解决问题?<—这是面对过程编程的一种思想
我们应该培养面对对象编程的思想 —> 把上述倒水的问题抽出一般的问题来,概念化抽象化问题。

两只没有刻度的桶A和B,其中A的容量为n升,B的容量为m升。问:如何通过相互之间的倒腾,量出k升的水来?

我们需要做的是对概念化抽象化的问题写出明确的可重复操作的解决方案 —> 算法
而且遇到实际类似的问题时很容易用我们的算法解决 —> 实例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值