- 博客(26)
- 收藏
- 关注
原创 install GDB or something need x86 arch on 2021 Macbook Pro
install GDB or something need x86 arch on 2021 Macbook Pro
2022-09-05 05:38:42
916
原创 近期成果&后续安排
近期成果最近忙着毕业设计和毕业的各种相关事宜,没有太多的时间码字,但是CS61b的项目没停。除了lab15和HW6、HW7是makeup(可以将之前分数不高的项目进行替换)的这三个没做以外其余的都做完了。整体下来的感觉就是无法想象这是一门UCB的计算机基础课,当我们学校或许大四可能有相当一部分人挂科(毫不夸张),后面我可能会补blog?但是也可能没啥时间了。HW7是关于Compression的知识,后面有时间会做一做。总结:历时两个半月proj3后面做崩了 不看GitHub根本想不出来体会到了差距
2022-06-27 01:10:17
240
原创 CS61B -BST(二叉搜索树)
CS61B - BST什么是BSTBST全名Binary search tree(二叉搜索树)BST的基本性质BST可以是一棵空树如果它的左树不为空,那么左树中的所有节点的值都小于根节点的值若右树不为空,那么右树中的所有节点都大于根节点其左右子树也均为二叉树(有一种递归的味)举个例子看看什么是BST吧,假如我们按顺序向一个空二叉树中插入如下元素(暂时以整型数据作为二叉树的元素,这样便于观察规律)5,7,3,4,6,8,9,15,10,2 那么我们的BST结构应该是这样形成的:我们如
2022-05-27 19:44:36
392
2
原创 CS61B - Disjoint Sets
Disjoint SetsOK,在这节中我们要做什么呢?QuickFindDSQuickUnionWeightedQuickUnionWeightedQuickUnionDSWithPathCompression
2022-05-20 00:02:23
454
原创 CS61B - Big O vs. Big Theta vs. Big Omega
Big O vs. Big Theta vs. Big OmegaBig Oless strength, the worst caseBig Thetathe range of the runtime scaleBig Omegagreater than or equal,
2022-05-17 21:09:42
296
原创 CS61B - 几种情况下的时间复杂度
几种情况下的时间复杂度1. for循环(1)单层for循环一般情况下,一层for循环时间复杂度为O(N),因为for循环通常用于遍历,因此遍历一个长度为N的列表,复杂度通常为O(N)。(2)嵌套for循环单层for循环复杂度为O(N),那么两层的嵌套for循环时间复杂度应该为O(N2)。实时真的是这样吗?我们来看个例子:for loop example 1:首先先是来说说上一节的那个嵌套for循环吧:public static boolean findStupid(String[] inpu
2022-05-16 20:44:55
1380
原创 CS61B - 时间复杂度
CS61B - 时间复杂度1. 什么是时间复杂度?我们每定义一个参数,都是为了实现一定的目的,那么为什么需要时间复杂度这一参数呢?我们首先考虑一个问题:在一个有序数列中判断是否存在重复的元素对于这个简单的要求,我们可以想到两种解决方案:遍历数列中的每一个元素,与数列中其他的元素比较大小,若找到相等的元素,返回true,若遍历后都未找到重复元素,返回false。接下来我们用代码实现这一方法:public static boolean findStupid(String[] input) {
2022-05-15 18:43:25
189
原创 CS61B - Iterator
CS61B - IteratorIterator是什么?看了CS61B这部分的网课两遍,感觉要好好记录下来,不然接下来还是容易忘。首先,究竟是什么原因让我们揪出来了Iterator这个东西呢?我们先看一段代码://assume we have an ArrayList called AList, which contains String type items//we want to create a method to print out all the items in the listpu
2022-05-04 12:38:38
685
原创 CS61B选做 lab5 六边形
CS61B选做 lab5 六边形有一说一,我本来都想放弃这个了,但是教案上面强调分层思想的理解和学习,所以硬着头皮画完了思路:1. 单个六边形2. 添加单个左侧六边形3. 添加多个左侧六边形4. 添加单个右侧六边形5. 添加多个右侧六边形6. 添加单个上侧六边形7. 添加多个上侧六边形8. 添加单个下侧六边形9. 添加多个右侧六边形10. 最后按照要求的Tesselation of Hexagons的模式进行绘制在main函数中,只调用最高层级的Tesselation六边形绘制函数
2022-05-01 13:58:13
485
原创 CS61B-Typing Puzzle
Java自学CS61B-Typing PuzzleJava中的类型转换&编译器的识别(练英语ing,毕竟决定去CMU搬砖了)课上老师举了个例子:我们想创建一个这样的层次类型关系。TopObjectMiddleDogBottomShowDog逻辑关系:Dog is-an ObjectShowDog is-a Dog那么我想尝试去实现这个课上的小puzzle,顺便可以梳理清楚很多相关的知识。First Step: create an ObjectWe
2022-04-26 12:16:07
110
原创 CS61B-Higher Order Function in Java
Higher Order Function in Java刚做完Proj1a,有几天没更新,今天看到这感觉不写个笔记自己可能很快就忘记了,所以写一个吧!我们为什么需要higher orderPython首先,我们先看一段Python的代码:def tenX(x): return 10*x def do_twice(f, x): return f(f(x)) print(do_twice(tenX, 2))正确执行上述指令后,运行结果应如下图所示:结果为(10*2)*10 = 2
2022-04-26 10:48:25
181
原创 Java-自学笔记-12
Java-自学-12链表进阶(理解&应用)封装链表的意义刚开始上课,老师提到封装链表的时候我不太理解为什么“多此一举”,但是随着后续代码的实践过程中我逐渐明白了封装链表的重要性。首先,它可以防止我们直接从内部修改链表,并且可以防止一些死循环的发生。并且在为链表添加方法后,更易于进行方法的调用。我理解的封装实际上就是给链表包起来,外面接上接口,外部看不到里面,像一个黑盒子一样进行使用。链表封装实例public class LinkedListDeque { public stat
2022-04-15 00:18:04
334
原创 Java-自学笔记-11
Java-自学-11IntList_new– 对标课上举例以及CS61B的lab2创建一个链表的多种方式我们如何创建一个链表?通过最近学到的知识总结,我们可以用不同的“方向”创建链表,也就是我们可以分别从正向以及反向创建链表:假设我们目前有IntNode类,可以构建一个链表单元。我们如何产生一个顺序列表呢(我理解的正向也就是我如果将10、20、40存入链表中,那么对应的链表中的首个元素是10,其次为20,最后为40):public class IntList_new{ public int
2022-04-13 21:34:45
129
原创 Java-自学笔记-10
Java-自学-10链表的封装就好像我们要穿衣服一样,我们如果像之前所展示的链表一样以IntList(first, rest);的方式表示列表,实际上就感觉像是我们直接把代码未经包装的裸露着交给使用者,并且不易调用。所以我们需要将链表进行封装:public class SLList{ public IntNode first; public SLList(int x){ first = new IntNode(x, null); } public static void main(Str
2022-04-13 18:15:01
109
原创 Java-自学笔记-9
Java-自学-9链表&应用(递归思想)&封装链表的引入说链表之前,不得不先提到一个词——recursion,也就是所谓的递归。什么是递归呢,可以理解成套娃吧,在一个方法中调用自己大概就可以算作是递归了。那么链表和递归有什么关系呢?我们先不说链表,我们看一段语句:public class IntList_new{ public int first; public IntList_new rest; /** construtor 1 */ public IntList_ne
2022-04-09 21:01:19
889
原创 Java-自学笔记-8
Java-自学-8指针复盘and数组的声明&实例化指针复盘首先先举个例子吧:public class Walrus_test{ public static void doStuff(Walrus W, int x) { W.W_weight = W.W_weight - 100; x = x - 5; } public static void main(String[] args){ Walrus walrus = new Walrus(3500, 10.5);
2022-04-08 21:27:17
514
原创 Java-自学笔记-7
Java-自学-7指针(pointer)老师用了一个很巧妙的例子引出指针,这个真的是国内教材中学不到的东西,那么我们来看看这个例子吧(神秘海象)public class Walrus{ double W_weight; double W_age;/** construtor 1 */ public Walrus(double weight, double age){ W_weight = weight; W_age = age; }constructor 1,用于对Walru
2022-04-08 18:39:59
441
原创 Java-自学笔记-6
Java-自学-6Static versus Non-StaticIn this blog, I would like to compare the differences between Static methods and Non-Static methods.Static methodsIf you want to invoke Static methods, using class name.换句话说吧,就是Static methods是一个静态值(好像说了句废话,但绝不是)。也就是说,它
2022-04-05 20:58:42
438
原创 Java-自学笔记-5
Java自学-5说说“some terminologies”Instance variable也就是我们常说的“实例变量”,可以设定对象的特征等。Constructor在网上看主要翻译为“构造器”?它类似于一种method但是实际并不是method,它决定了怎样去实例化一个类,不确定自己翻译的对不对,还是上英文吧(Determines how to instantiate the class)Non-static method or Instance Method如果一个方法会通过一个类的实例
2022-04-05 14:19:22
96
原创 Java-自学笔记-4
Java自学4花了一天半配置UCB CS61B的环境,包括Github、IntelliJ Idea等等一大堆东西,然后跑成了,还是挺有收获的。next step(我不知道会不会持续下去,因为最近实在摇摆不定自己未来的学习方向(软/硬?)如果坚持下去,就先刷pro0配置方法可以看看UCB CS61 18fall的官网网址扔这了,有需要的朋友自行参考:https://sp18.datastructur.es/Stay Hungry. Stay Foolish.我永远记得乔布斯在斯坦福演讲的那句话
2022-04-05 12:14:07
302
原创 Java-自学笔记-3(1)
Java-自学-3(1)Exercise 3 method_1(HW0里面的最后一个Exercise了)首先看到题目,没有看Hint,用自己的鸡肋思路做完一遍,所以是method_1,对题目首先进行一下简要的说明。题目要求设定一个函数windowPosSum(int[] a, int n),然后实现这样的功能:1. 将a数组中的每一个元素a[i]替换为包括a[i]在内向后n项的和(这块如果说的不清楚可以看一下下面的例子)2. 如果a[i]为负数,不进行任何操作3. 当后面所剩的元素个数小于n时,
2022-04-04 11:29:56
272
原创 Java-自学笔记-2
Java 自学 - 2Exercise 2:判断一个Array中最大的元素题目中所给代码框架:public class ClassNameHere{ public static int max(int[] m){ return 0; } public static void mian(String[] args){ int[] numbers = new int[]{9, 2, 15, 2, 22, 10, 6}; }利用程序模板,题干希望我们可以返回22解题思路:设定一个
2022-04-03 19:49:37
311
原创 Java-自学笔记
自学Java第一课自学内容:跟UCB-CS61B开始做HW0只对exercise内容进行说明,其余的课上跟着老师打一遍代码就行Java不同于Python、C等其余编程语言,所有的内容都是在Class内编写的。函数同样也包含在Class内,并且可以理解为是一种method。Exercise 1a:题目看起来很熟悉,和练习C语言的内容一样,打印出由“*”组成的三角形,打印的行数自定义。我想用创建并调用函数的方式实现,因此我将题目中的要求进行细分:创建一个函数,可以实现根据输入值打印出与之
2022-04-03 13:44:20
1237
原创 小白 ADC部分一些参数及指标的理解(一)
51 AD模块的原理及应用一、A/D(1) 采样定理fs>=2fm,其中fs 为采样频率, fm 为输入信号的最高频率分量的频率(2) 量化和编码量化:对于数字信号而言,每一个数字量都是最小单位数字量的整数倍,比如用数字量表示采样电压,必须将其化为最小数量单位的整数倍,这就是量化过程。编码:将量化值用二进制代码表示既为编码(3) 常用的A/D转换器直接 A/D 转换器反馈比较型 A/...
2020-05-06 13:09:35
2481
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人