凡事都讲究动机,你学习算法的目的是什么呢?目的不同,学法不同侧重不同。
如果你是准备跳槽,以面试为目的,可以先从cracking the coding interview入手,题目是按照链表,树图,递归这种章节安排的,每章都有题目,难度适中,第一遍自己写不出来很正常,画图分析,然后再做第二遍,第二遍就快很多,理解也深刻了,实在理解不了的算法,没办法,背吧,说不定到后面不知什么时候就理解了,所谓读书百遍,其意自现,算法也一样。
如果你是半路出家的程序员,看书觉得看不下去,可以试着看看视频,现在网络这么发达,网上有很多免费的精品视频,比如潭州教育老师的数据结构以及清华邓俊辉老师的数据结构都是特别好的课程。
最后一种就是你对算法理论和精髓确实感兴趣,且有一定的数学功底,你可以尝试研究下《算法导论》,甚至《计算机程序设计艺术》(反正我是看不下去)。
其实,无论出于哪种目学习算法,其实最重要的一点就是:多编程实践,多思考,这是废话,但这也是真理。
你现在大一还是大二?刚开始学算法当然是有点吃力的,但只要用心学,我觉得一个学期下来你可以发生很大的进步。平时学算法注意多理解算法本质的思想,不要去背,另外多做题是最好的,去OJ平台刷题啊,不刷个200道,好意思说自己学过算法?