算法与数据结构
算法笔记
书忆江南
https://github.com/hackeryang
展开
-
Java算法:实现环形缓冲区(带详细注释)
环形缓冲区,又称为环形队列,是一种定长为N的先进先出的数据结构,在进程间的异步数据传输或记录日志文件时十分有用。两个不同进程共享一块缓存区域,当缓存区为空时,缓存读取进程会在数据存入缓存区前等待,当缓存区满时,缓存写入进程会等待读取进程读取了一部分数据后,再将数据存入缓冲区。代码和通俗易懂的注释如下所示:public class RingBuffer<Item> { ...原创 2018-04-03 13:12:58 · 4614 阅读 · 2 评论 -
算法与数据结构细节复习笔记(Java实现)
本笔记涉及代码:https://github.com/hackeryang/Algorithms-Fourth-Edition-Exercises1.Java中的length属性是针对数组说的,比如说声明了一个数组,想知道这个数组的长度则用到了length这个属性,例如有个数组int[] a,那么a的长度就是a.length。length()方法是针对字符串String说的,如果想看这个字符串...原创 2018-04-24 21:12:44 · 1385 阅读 · 0 评论 -
常用数据结构与排序算法实现、适用场景及优缺点(Java)
本笔记涉及代码:https://github.com/hackeryang/Algorithms-Fourth-Edition-Exercises1.下压栈(后进先出)(能够动态调整数组大小的实现):package Chapter1_3Text;import java.util.Iterator;public class ResizingArrayStack<Item>...原创 2018-05-10 15:51:08 · 4178 阅读 · 0 评论 -
常用查找算法与数据结构实现、适用场景及优缺点(Java)
本笔记涉及代码:https://github.com/hackeryang/Algorithms-Fourth-Edition-Exercises1.二分查找算法:package Chapter1_1Text;import edu.princeton.cs.algs4.In;import edu.princeton.cs.algs4.StdIn;import edu.prince...原创 2018-05-17 20:59:12 · 5176 阅读 · 0 评论 -
算法(第四版)习题答案与Intellij IDEA算法环境配置
以下是本人上传到GitHub上的正文及习题的代码,部分代码有详细注释,部分答案参考了其他几位大神的答案并根据自己的理解加上了注释或有一点修改:https://github.com/hackeryang/Algorithms-Fourth-Edition-Exercises关于学习这本书的开发环境配置,首先需要去书本官网下载algs4.jar这个文件:https://algs4.cs.pri...原创 2018-05-22 15:15:53 · 6749 阅读 · 19 评论 -
图论基础知识与常见图处理算法
本笔记涉及代码:https://github.com/hackeryang/Algorithms-Fourth-Edition-Exercises1.图论应用广泛,例如地图中规划最短路线、搜索引擎中的网页链接(结点为网页)、电路板上元件之间的连接、商业交易中用连接表示现金和商品在买卖方之间的转移、编译器使用图表示大型软件系统中各模块之间的关系等(结点为模块,连接为类方法之间的调用关系),如下所...原创 2019-06-30 21:34:58 · 3305 阅读 · 0 评论