编程基础概念:分治

===》点我返回目录《===

当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。

基本的步骤为:分而治之,把一个复杂的问题分解成很多规模较小的子问题,然后解决这些子问题,把解决的子问题合并起来,大问题就解决了。

比如说二分查找,就是用的分治思想。要在一个有序的升序数组里面查找一个数x有没有,不用拿数组里面每个数挨个比较,这是暴力枚举。仔细考虑一下,我们可以把问题分成两部分,前半段有没有?后半段有没有?然后继续细分。

还有排列问题、归并排序、棋盘覆盖问题等等,都体现了分治思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一份可能的详细规划,供参考: 第一步:选择编程语言和学习资源 1. 选择一门主要的编程语言,例如 Python、Java、C++ 等。 2. 参考网上的评测和建议,选择一些适合初学者的编程教程和学习资源。例如: - Python:《Python编程从入门到实践》、《Python核心编程》、Coursera 上的《Python for Everybody》课程等。 - Java:《Java编程思想》、《Head First Java》、Udemy 上的《Java Programming Masterclass for Software Developers》课程等。 - C++:《C++ Primer》、《Effective C++》、Udemy 上的《Learn C++ Programming -Beginner to Advance- Deep Dive in C++》课程等。 第二步:学习基础语法和算法 1. 学习编程语言的基础语法和数据类型、流程控制语句、函数等。 2. 学习基础算法,例如排序、查找、递归、动态规划等。可以参考《算法导论》、LeetCode 等网站。 3. 练习编写简单的程序和算法,例如计算器、游戏等小项目。 第三步:学习面向对象编程(OOP) 1. 学习面向对象编程概念和基本原则,例如封装、继承、多态等。 2. 学习如何设计和实现面向对象的程序,例如使用类、对象、继承、接口等。 3. 练习编写面向对象的程序,例如实现一个简单的游戏或者模拟系统等。 第四步:学习数据结构和算法 1. 学习常见的数据结构,例如数组、链表、栈、队列、树、图等。 2. 学习常见的算法,例如查找、排序、哈希、贪心、回溯、分治等。 3. 练习编写各种数据结构和算法的实现,并进行测试和优化。 第五步:学习软件工程和项目管理 1. 学习软件工程的基本原则和流程,例如需求分析、设计、编码、测试、部署等。 2. 学习项目管理的基本知识和方法,例如项目计划、进度控制、风险管理、团队协作等。 3. 参与实际项目的开发和管理,并不断积累经验和技能。 总之,零基础提高编程能力需要耐心、毅力和持续的学习和实践。以上规划仅供参考,具体的学习路径和进度应该根据自己的情况和兴趣来制定和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值