Fork me on GitHub

学习算法与数据结构

0. 开始学习《算法》

学习算法之前,其实以前看过《算法导论》,但是那本书有太多的证明和运算,看的有点头大,毕竟数学基础比较差,在论坛上,大家都对《算法》这本书推崇备至,一直想要一睹真容,现在终于决定花两个月的时间把这本书读一遍,据说比较适合入门级选手。

1. 第一章 基础

下面我会记录比较重要的,并会把练习的代码放在github上,有兴趣的可以看看,虽然代码写的可能比较烂,慢慢进步吧。

第一章的内容主要是讲java语言的基础,我之前没有java语言基础,但是学过C语言和python,对这些基本语法的掌握应该会比较快,所以我在这里会记录一些关于java语言的基础知识点,据书中描述,只要知道这些基本的语法,对书中的算法也可以理解清楚了。

原始数据类型
语句:声明、赋值、条件、循环、调用、返回。
数组
静态方法,函数
字符串
输入输出
数据抽象

java语言的标准绘图库StdDraw,因为我是第一次学到,在这里也记一笔。

数据抽象,就是面向对象的编程,重点在于API的设计。

数据类型的值是一组对象的集合,所有操作包括,添加、删除、访问。

背包

背包是一种不支持删除元素的集合数据类型。

先进先出的队列

后进先出的栈

链表

链表是一种递归的数据结构,

class Node{
               int value;
               Node next;
           }

链表是一种比较基础的数据结构,通过链表的实现可以构建很多复杂的数据结构。这里基本上是算法第四版的第一章的基本内容,简单的提一下。