- 博客(15)
- 收藏
- 关注

原创 csapp 实验-> datalab(超详细)
该实验是《深入理解计算机系统》(英文缩写CSAPP)课程附带实验——Lab1:Data Lab,对应书中第二章内容(信息的表示和处理),是所有实验中的第一个实验
2024-05-12 19:32:33
2220
2

原创 一名合格的程序猿修炼手册(保姆级指导)
Github有个「」的仓库。💻我看了下清华大学的计算机系课程表,我这里简单,其实还有很多文化课、图形学、数字电路、高数等等。大一:C/C++语言;大二:Java语言、数据结构、汇编语言;大三:计算机组成、计算机网络、、操作系统、数据库系统接下来,我就跟大家分享下,这里推荐下我当初自学的书籍和视频。:《》->《》->《数据结构与算法之美》 -> 《剑指offer》 -> LeetCode刷题(至少刷到200多道):《操作系统导论》->《现代操作系统》:《图解HTTP》->《图解TCP/IP》->
2024-04-27 16:12:20
1160
原创 常见排序方法图文解析(保姆级)
希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些树中给出的希尔排序的时间复杂度都不固定。
2024-09-15 16:34:20
1232
原创 二叉树功能实现(超详细)
输入一个字符,动态分配内存给新的节点,初始化该节点的值和左右子节点指针。通过节点值查找树中对应的节点,如果找到了就返回该节点的指针。遍历顺序为:根 → 左子树 → 右子树,打印每个节点的值。遍历顺序为:左子树 → 根 → 右子树,打印每个节点的值。遍历顺序为:左子树 → 右子树 → 根,打印每个节点的值。采用队列实现的层序遍历(广度优先),按层打印每个节点的值。计算并返回树的深度(从根节点到叶子节点的最长路径)。计算并返回树的叶子节点数量(没有子节点的节点)。_right:指向右子节点的指针。
2024-08-31 18:25:32
592
原创 坚持每天一道力扣题_利用堆找出最小k个数
用一个大根堆实时维护数组的前 k 小值。首先将前 k 个数插入大根堆中,随后从第 k+1 个数开始遍历,如果当前遍历到的数比大根堆的堆顶的数要小,就把堆顶的数弹出,再插入当前遍历到的数。最后将大根堆里的数存入数组返回即可。
2024-08-29 14:12:18
444
原创 坚持每天一道力扣题_分割链表
为了实现上述思路,我们设 smallHead 和 largeHead 分别为两个链表的哑节点,即它们的 next 指针指向链表的头节点,这样做的目的是为了更方便地处理头节点为空的边界条件。遍历结束后,我们将 large 的 next 指针置空,这是因为当前节点复用的是原链表的节点,而其 next 指针可能指向一个小于 x 的节点,我们需要切断这个引用。同时将 small 的 next 指针指向 largeHead 的 next 指针指向的节点,即真正意义上的 large 链表的头节点。
2024-08-28 20:19:52
261
原创 坚持每天一道力扣题_删除有序数组重复项
由于给定的数组 nums 是有序的,因此对于任意 i<j,如果 nums[i]=nums[j],则对任意 i≤k≤j,必有 nums[i]=nums[k]=nums[j],即相等的元素在数组中的下标一定是连续的。nums[fast−1],说明 nums[fast] 和之前的元素都不同,因此将 nums[fast] 的值复制到 nums[slow],然后将 slow 的值加 1,即指向下一个位置。将快指针 fast 依次遍历从 1 到 n−1 的每个位置,对于每个位置,如果 nums[fast]
2024-08-26 23:57:37
259
原创 坚持每天一道力扣题_环形链表
把相遇点的next创建为新链表newlist。再利用所学的链表相交找到相交点。利用环形链表,找到相遇点。再把相遇点的next置空。(实现复杂,证明简单)
2024-08-21 23:07:55
336
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人