数据结构
文章平均质量分 92
隐秀_
更多精彩 seriouszyx[dot]com
展开
-
CS61B sp2018笔记 | Testing and Selection Sort
调试程序可以说是最能体现程序员水平的能力之一了,接下来我们将讨论如何写test来保证你的程序的正确性,与此同时我们将讨论一种比较算法——选择排序。1. Ad Hoc Testing 在写sort类之前,我们先来设想并实现TestSort类。public class TestSort { /** Tests the sort method of the Sort c...原创 2018-07-25 20:57:31 · 728 阅读 · 0 评论 -
普林斯顿算法课程Part1-week3 归并排序和快速排序
作者: seriouszyx首发地址:https://seriouszyx.top/代码均可在 Github 上找到(求Star)归并排序归并排序的思想是把数组一分为二,然后再不断将小数组递归地一分为二下去,经过一系列排序再将它们合并起来。private static void merge(Comparable[] a, Comparable[] aux, int lo, int m...原创 2019-05-22 15:41:04 · 408 阅读 · 0 评论 -
普林斯顿算法课程Part1-week2 栈和队列
栈和队列栈:先进(入栈)后出(出栈)队列:先进(入队)先出(出队)在实现之前,老师提到了模块化的思想,它使得我们能够用模块式可复用的算法与数据结构的库来构建更复杂的算法和数据结构,也使我们能在必要的时候更关注效率。这门课也会严格遵守这种风格。栈假设我们有一个字符串的集合,我们想要实现对字符串集合的存储、定期取出并返回最后添加的字符串、检查集合是否为空。下面是 API:链表实现...原创 2019-05-22 15:37:15 · 438 阅读 · 0 评论 -
普林斯顿算法课程Part1-week1并查集
作者: seriouszyx首发地址:https://seriouszyx.top/代码均可在 Github 上找到(求Star)coursera 课程 《Algorithms,Part 1》第一周作业解答 —— 渗透模型。问题Programming Assignment 1 是一个并查集的应用——渗透模型。给定义一个 n×nn\times nn×n 的矩阵(代表一个系统),黑...原创 2019-05-22 15:34:22 · 527 阅读 · 0 评论 -
CS61B sp2018笔记 | Efficient Programming
Efficient Programming “An engineer will do for a dime what any fool will do for a dollar” – Paul Hilfinger编程的效率取决于以下两方面因素:编程时的消耗(programming cost)你花费多长时间编写好程序?你的代码是否易读、是否易于更改、易于维护?运行时的消耗...原创 2018-10-24 18:20:37 · 1641 阅读 · 0 评论 -
CS61B sp2018笔记 | Exceptions, Iterators, Iterables
1. Throwing and catching1.1 Throwing Exceptions在程序运行过程中,可能会遇到某些错误需要终止,这时程序就会抛出一个异常。让我们看看一个常见的情况——IndexOutOfBounds异常。下面的程序向ArrayMap中插入value为5,key为”hello”的一组数据,试图获取key为”yolp”的value:public st...原创 2018-08-31 08:13:36 · 402 阅读 · 0 评论 -
CS61B sp2018笔记 | Inheritance, Implements
1. Intro and iterfaces1.1 The Problem 回想我们之前写过的两个类SLList和AList,如果你仔细观看它们的文档的话,会发现他们非常相似,事实上,他们支持的所有方法全都一样。 下面我们来设计一个类WordUtils,它包含了一些可以处理一系列字符串的方法,其中的一个方法是找到SLList中最长的字符串,下面是这个方法的实现:...原创 2018-07-27 21:32:50 · 614 阅读 · 0 评论 -
CS61B sp2018笔记 | Lists
Lists1. IntLists 下面我们来一步一步的实现List类,首先你可以实现一个最简单的版本:public class IntList { public int first; public IntList rest; public IntList(int f, IntList r) { first = f;...原创 2018-07-22 11:16:00 · 7033 阅读 · 1 评论 -
CS61B sp2018笔记 | Generics and Autoboxing
1. Automatic Conversions1.1 Autoboxing and UnboxingJava中的泛型用到了<>,当我们实例化一个泛型的时候,必须要指明一个确定的类型。回忆一下,Java有8中基本类型,其他所有的类型都是引用类型。Java的一个特点就是不能把基础类型当作参数传递给泛型,比如说,ArrayDeque<int>是一个语法错误,正确...原创 2018-07-29 15:57:00 · 766 阅读 · 0 评论 -
普林斯顿算法课程Part1-week4 优先队列和符号表
作者: seriouszyx首发地址:https://seriouszyx.top/代码均可在 Github 上找到(求Star)优先队列和符号表优先队列在入队时与传统队列相同,而出队时可以指定规则,比如最大元素/最小元素出队等,下面是一个简单的 API:二叉堆二叉堆是堆有序的完全二叉树,键值存储在节点上,且父元素的键值比子元素的键值大。我们可以推测出最大的键值在根节点上,也就是...原创 2019-05-22 15:43:13 · 430 阅读 · 0 评论