《算法第四版》学习心得一——怎么学算法

二分查找算法实现《算法第四版)》 最近开始看《算法(第4版)》这本书,在此记录下自己的学习心得、遇到的问题以及如何解决的。希望能够提升自己帮助他人。         刚开始看这本书遇到的第个比较有代表性的算法就是二分查找,运用《算法》这本书所提供的工具DrJava(课本官网地址连接http://algs4.cs.princeton.edu/home/)去运行书中所给的代码时遇到点小小的问题。书上算法源码如下: impo 阅读详情

 一、算法的两个核心

算法的核心内容实际上有两个:

  1. 算法的概念和思路。
  2. 算法的编程实现。

两者相互关联影响,缺一不可。

不理解基本概念和思路,就算把实现代码背下来,也无济于事,因为脑袋里依然是一片模糊。理解了概念和思路,不去用代码实现,脑袋里有的只是概念,无法根据真实需求实现解决方案。

二、学算法需要什么基础

  1. 首先,必须要有一定的编程语言基础,要理解语言中最基本的概念:数据类型,类,成员变量,方法,封装等等。
  2. 有了语言基础,即使没有大量的编程经验,也已经具备了学习算法的概念和思路的能力,因为概念和思路更多是考验学习者的抽象思维能力。思维能力好的人,即使没有大量的编程经历,也可以很快掌握算法的核心概念。反之,思维能力差的人,即使有了多年的编程经验,在接触到一个新算法的时候,也需要花费很长时间才能理解算法的核心概念。
  3. 理解了某个算法的概念和思路,并不意味着掌握了这个算法。在遇到真实问题的时候,它能带给你思路,但不能给你真正解决问题的能力。要想真正具备解决问题的能力,就一定要把算法实现出来。只有自己能够独立实现算法,才是真正掌握了算法。
  4. 这一步就对写代码能力提出了要求。这就相当于在问,如果我能说清楚某个逻辑过程,那我是否有能力把这个过程转化成代码呢?这是一个难倒很多初学者的要求,同时也是每个初学者不得不跨过的坎。我自己到现在也还在被这个问题困扰,但我相信,随着我不断学习和实践,实现代码的能力总是会逐步增强的。

三、怎么学?

  1. 通过前面的分析可以知道,学算法一定要先搞清楚概念和思路。没有理解算法的概念和思路就直接想实现代码,实际上是南辕北辙。因此,每当接触一个新的算法和结构是,先不要忙着去写代码,去实现。先问问自己,这个算法是在做什么呢?它是在解决什么样的问题?它是用了什么样的方法解决问题的?
  2. 反反复复思考这些问题,直到自己基本能够把问题的答案理清楚。实在想不清楚,可以借助书上的代码和图形实例帮助理解。《算法》这本书非常好的一点就是,对于书中提供的算法,基本都
数据结构学习心得总结 开篇经过近个月的习,终于将郝斌老师讲的数据结构视频看完了~习完成后,受益良多,也非常喜悦,非常开心,好像终于打了场胜仗样!我打算将这个月的学习心得个汇总,记录下来。 希望能给初者带来信心和经验,能给大家分享这份快乐~万事开头难刚开始打算数据结构,是因为找工作面试的时候,很多公司都要求对数据结构有了解。没办法,我只有硬着头皮了。但是我没有任何习思路,因为之前上课习的时候,我 阅读详情

相关推荐

BSGS 大步小步 算法学习心得

完才发现其实并没有那么复杂,但中间还是有很多地方困扰了我很久orz; 先安利名神犇的博客:BSGS; 首先,大步小步的思想有点像分块,将整体划分成根号n块,再对每小块中的根号n种取值找个最优值; 如果看完了我安利的那篇博客的话,应该是能够自己写出随处取逆元的写法了; 但是这样的做法太慢,考虑怎么把取逆元的过程除去; 首先定义下符号,求下式的最小整数解 ax≡b(mod&nbs...

santongding 782

算法4》读书笔记(

写在前面:配套网站algs4.cs.princeton.edu,可以把这个网站作为编程的时候的参考资料。这本书比较实用(某瓣评分9.3),但没有动态规划部分,作为两三年没怎么碰过算法和数据结构的菜狗,看了《图解算法》后(这本书提供了对算法大概的引导,动态规划、分治策略等都有提及,图比较多,比较有趣味性,代码是用python写的),意识到还是得系统习,当然复习了下java(ps:卑微地拜读了java核心技术的前九章,虽然翻译有的地方有些离谱,但因为本菜狗本科过java开发,做过几个java web

qq_27144571的博客 639

【VSCode Python无法格式化代码】

提示:需要Install Formatter…安装插件autopep8,点击install。出现Format Document。

AIFRZ的博客 1万+

算法《第4版》读书笔记-准备篇章

算法《第4版》书中有很多用到了作者自定义的方法,如果我们想跟着书籍的源码来进行实验习,则需要将用到的方法的jar包下载并引入工程。 jar包的地址为:http://algs4.cs.princeton.edu/code/algs4.jar  ...

qq_24497925的博客 264

入门-基础-算法第4版

文章目录1、前言2、基础编程模型2.1、Java程序的基本结构2.2、原始数据类型和表达式2.2.1、表达式2.2.2、类型转换2.2.3、其他原始数据类型2.3、语句2.4、数组2.4.1、创建并初始化数组2.4.2、二维数组2.5、方法2.5.1、递归2.6、API2.7、输入输出2.7.1、标准会图库 1、前言 本书研究多种重要而实用的算法;和算法关系最紧密的是数据结构;本书使用java做为编程语言。 基础编程模型:描述和实现算法所用到的语言特性、软件库和操作系统特性总称 数据抽象并定义抽象数据类型

gaogzhen的博客 1510

算法习攻略总结 : 入门至进阶,通关之路指南

算法习攻略,算法没有捷径可走:先死磕入门数据结构,然后接触算法思想,最后开始分类刷题。刷题就是最好的捷径了,但刷题后不要就此止步,应该尽可能寻找最优解。当你积累了定的题量后,你会发现自己的算法能力得到了显著提升。

码到三十五 12万+

以《算法》(第四版))为基础的

文章目录第章 基础1.1 基础编程模型1.2 数据抽象1.3 背包、队列和栈1.4 算法分析1.5 案例研究:union-find算法章 基础 1.1 基础编程模型 1.2 数据抽象 1.3 背包、队列和栈 1.4 算法分析 1.5 案例研究:union-find算法 ...

weixin_45966880的博客 182

《Algorithms》算法第四版相关习文章及代码。

代码Git路径:https://github.com/fengjw1/Algorithms.git refer to blog: https://github.com/aistrate/AlgorithmsSedgewick/tree/master/1-Fundamentals/1-1-BasicProgModel https://github.com/jimmy

hacker_crazy的专栏 1958

Java学习心得

关于为什么选择了习Java,方面是老长推荐,另方面是因为自己也玩我的世界Java版,想着正好语言对口,以后游戏出错了自己也可以尝试着修复。最开始习Java是跟着B站上黑马程序员阿伟老师的视频的,在开头安装Java的编译器时就费了不少时间,在B站上找IDEA的破解教程,然后是安装、破解、汉化,这系列操作搞完后,开始跟着视频创建第个Java类并且打印出熟悉的“Hello World”。

OGAS2185的博客 1157

算法学习心得

这篇文章是我算法的心得,希望它能够给些将要算法且准备要读大部头算法书籍的朋友些参考,节省些时间

方圆 Blog 2185

学习心得_我的算法学习心得

关于严格来说,本文题目应该叫作“我的数据结构和算法面试学习心得”,但这个写法实在太绕口,所以干脆叫“我的算法学习心得”,希望对大家有帮助。需要说明下,本文主要是应对面试的算法习。这篇文章讲了什么 ?对于算法的认知算法的方法总结小结算法的认知回首我当初算法的道路,整个过程是异常的艰辛。特别是刚开始的那几个月,天可能也做不出来几道题。有些题看起来很简单,在提交的时候总是有各种测试样例...

weixin_39818521的博客 565

算法学习心得(1)

算法学习心得 文章目录算法学习心得前言编程基础编程语言入门数据结构的习STL常用函数c++中常用的函数容器编程方法 前言 我应该是从大的上期才了解到算法竞赛,那时刚刚报名参加蓝桥杯,当时的我只会c语言,因为校教的内容太少,大的寒假我又重新自遍c语言,在练习系统刷了些题发现,实在没法入门,难题连别人的题解都看不懂,有许多成系统的算法分类,算法模板都不了解,之后参加蓝桥杯,凭借刷了不少题的优势,勉强拿了个省,但到国赛发现,自己实在没法写国赛那种成体系的算法题,国赛之后,我才开始摸索

luoxuanccc的博客 1113

学习心得

0.引言 欢迎来到我的频道 如果看到这篇文章的你是大三的妹又或更小,那( •̀ .̫ •́ )✧我想对你们说: 那些口口声声 “代不如代”的人 应该看着你们 就像我样 我看着你们 满怀羡慕。。。。 当你开始知道规划自己的习路线,恭喜你已经迈出了很重要的步,我只能结合自己和身边认识的几位大佬的习经历给出些建议 如果看到这篇文章的你和我样是大四的生,如果手里没有满意的offer,务必稳住心态,都说金八银九,金九银十,但我认为应届生找工作更像是场拉锯战。 目前12月份确实临近秋招尾声

question_mark的博客 1408

读书笔记_专业——《算法第四版

期看的算法书,现在回头再看发现之前很多知识都没有理解,这次针对性的浏览了排序、二叉搜索树、散列表、红黑树部分,也就是全书的前半部分。在排序部分,重点放在了插入、希尔、堆、归并、快排五种排序方法,之前只是感性的去理解其思想,这次才真正能够手撕代码了。其中的关键是理解递归过程在归并和快排中的应用以及递归过程怎么计算时间复杂度,了解各种排序算法的性能指标和其应用场景等问题,堆排序中理解堆这种数据...

亮亮的博客 295

算法红皮书第四版 读书笔记 () 基础 算法式思考

算法也是种自然语言的另外种表述 public static int gcd(int p, int q) { if (q == 0) { return p;} int r = p % q; return gcd(q, r); } 计算两个非负整数 p 和 q的最大公约数: 若 q 是0,则最大公约数为p。否则,将p除以q得到余数r,p和q的最大公约数即为q...

SmileTimLi的博客 1008

算法 第四版习总结(超赞!!!)

我是技术搬运工,好东西当然要和大家分享啦.原文地址第章 基础栈数组实现public class ResizeArrayStack<Item> implements Iterable<Item> { private Item[] a = (Item[]) new Object[1]; private int N = 0; public void p...

FanceFu的博客 1万+

算法第四版)观后感

算是我看过的讲算法讲的最细最明白的本书, 个人感觉比算法导论要好(好吧,算法导论我看不懂。。) 详细的讲解了各种算法的差异和试用条件。 =。= 终于看明白了np问题的意思。。 转载于:https://www.cnblogs.com/wangtianhang/p/4077692.html...

weixin_30355437的博客 334

算法第四版入门准备

刚看完C++Primer,再开始看《算法第四版。 《算法第四版用的是JAVA,第次接触,花了天时间在配置环境上,浪费了时间。 废话少说,介绍下拿到《算法》这本书后要做的事情。首先,去看官网的教程,windows下配置环境:http://algs4.cs.princeton.edu/windows/。“大河萌虎的外屋”将其翻译成了中文,英语不好的可以看这个翻译版:http://shuxi

PIPIXIU的博客 1万+

傻逼习之——算法 第四版 1.1

算法,不会Java,各种捉急,用的算法第四版,跟着百度文库瞎掰。。。。。。。。题的埋坑,,,, 下面给出可以测试多题的代码(要有Sedgewick老先生的手安排,去网站下载库和相应的文件:http://algs4.cs.princeton.edu/code/     ) public class test { public static int lg(int N){ int

jack_of_all_trades的博客 1955

ARFoundation系列讲解 - 手部跟踪编程

通过使用ARFoundation的手部跟踪子系统,我们可以轻松地在AR应用程序中实现与用户手部的交互。通过设置AR环境、创建场景和相机、添加手部跟踪功能以及编写相应的脚本,我们可以开始在AR场景中跟踪和操作用户的手部。在Unity中创建个新场景,并将AR Session组件添加到场景中的个空对象上。手部跟踪的具体实现可能因AR设备和平台的不同而有所差异,你可能需要根据你的使用情况进行些适配和调整。当你将手部放入AR场景中时,手部跟踪系统将触发相应的事件,并调用脚本中的回调函数。

2301_79325339的博客 342

仓库出入库管理(智能系统).xlsm

1、仓库出入库管理(智能系统).xlsm2、出入库明细表3、库存表4、报表图表5、商品档案表6、其他表7、函数+VBA+超链接

上一篇: 背包、栈、队列基于数组和链表的实现
下一篇: Linux数据流重定向
illikang
博客等级 码龄9年 2170粉丝 61原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值