自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 CS61B 数据结构与算法 Spring 2021 Project2: Gitlet

CS61B proj2 gitlet https://github.com/cy-Yin/UCBerkeley-CS61B-sp21-Proj2-Gitlet

2024-06-25 20:35:15 450 1

原创 UCB EE120 信号与系统

UCB EE120https://github.com/cy-Yin/UCBerkeley-EE120-Lab-Solutions

2024-04-24 18:29:16 223 1

原创 CS61B 数据结构与算法

CS61Bhttps://github.com/cy-Yin/UCBerkeley-CS61B-sp18

2024-04-24 18:20:24 512 2

原创 CS61A:计算机的程序构造与解释

CS61Ahttps://github.com/cy-Yin/UCBerkeley-CS61A-Fall2023

2024-04-24 18:12:49 329 1

原创 排序算法的Python实现

此时,分割点左边的元素都小于基准值,右边的元素都大于基准值。分治策略:每次将列表一分为二,并对两部分都递归调用归并排序,当两部分都有序后就进行归并(将两个小的有序列表并为一个大的有序列表)。不过,由于冒泡排序要遍历列表中未排序的部分,因此它具有其他排序算法没有的用途。这种方法的思路是,如果头元素的正确位置不在列表中部附近,那么三元素的中间值将更靠近中部。在列表较低的一端维护一个有序的子列表,并逐个将每个新元素按照大小“插入”这个子列表。的列表,如果分区操作总是发生在列表的中部,就会切分。

2022-09-14 17:01:40 320

原创 散列函数的应用:实现映射抽象数据类型

很大,则意味着散列表很拥挤,发生冲突的概率也就很大。因此,冲突解决起来会更难,找到空槽所需的比较次数会更多。若采用链接法,冲突越多,每条链上的元素也越多。它是将键和值关联起来的无序集合,其中的键是不重复的,键和值之间是一一对应的关系。键用来查找关联的值,这个概念常常被称作映射。然而,因为可能发生冲突,所以比较次数通常不会这么简单。很小,那么发生冲突的概率就很小,元素也就很有可能各就各位。和之前一样,来看看搜索成功和搜索失败的情况。,则搜索成功的平均比较次数如下。,搜索成功的平均比较次数如下。

2022-09-14 11:42:17 181

原创 动态规划:以找零钱问题为例

通过记录minCoins表中每一项所加的硬币,可以轻松扩展dpMakeChange,从而记录所用的硬币。如果知道上一次加的硬币,便可以减去其面值,从而找到表中前一项,并通过它知晓之前所加的硬币。许多计算机程序被用于优化某些值,例如找到两点之间的最短路径,为一组数据点找到最佳拟合线,或者找到满足一定条件的最小对象集合。,并在计算新的最少硬币数之前,检查结果是否已在表中。要进行真正的找零,不光要提供minCoins,还需要记录所用的硬币。优化问题的一个经典例子就是在找零时使用最少的硬币。

2022-09-07 18:04:44 2319

原创 Python数据结构——队列 模拟队列打印问题

当学生提交打印任务时,我们需要将它们加入等待列表中,该列表是打印机上的打印任务队列。当打印机执行完一个任务后,它会检查该队列,看看其中是否还有需要处理的任务。如果有,那么打印机就处于工作状态,并且其工作所需的时间可以通过要打印的页数来计算。上面的输出结果显示,按每分钟5页的打印速度,任务的等待时间在23.85秒和313.94秒之间,相差约5分钟。我们编写了一个程序来模拟随机提交的打印任务,待打印的页数也是随机的。如果各页数出现的概率相等,那么打印任务的实际时长可以通过1-20的一个随机数来模拟。

2022-09-03 17:49:39 1262 1

原创 传土豆游戏

考虑这样一个儿童游戏:传土豆。在这个游戏中,孩子们围成一圈,并依次尽可能快地传递一个土豆。在某个时刻,大家停止传递,此时手里有土豆的孩子就得退出游戏。重复上述过程,直到只剩下一个孩子。这个游戏其实等价于著名的约瑟夫斯问题。弗拉维奥·约瑟夫斯是公元1 世纪著名的历史学家。相传,约瑟夫斯当年和39 个战友在山洞中对抗罗马军队。眼看着即将失败,他们决定舍生取义。于是,他们围成一圈,从某个人开始,按顺时针方向杀掉第7 人。约瑟夫斯同时也是卓有成就的数学家。

2022-09-03 16:47:13 924

原创 Python算法分析——以异序词检测为例

采用经典的异序词检测的示例,展示不同数量级的算法

2022-07-25 17:53:14 506

原创 单链表的整表创建(C语言)

//单链表的创建//尾插法#include<stdio.h>#include<stdlib.h>//malloc函数要用到该库struct node //创建一个结构体用来表示链表的结点类型{ /* 链表第一个是整型data,用来存储具体数值 链表第二个是一个指针,用来存储下一个结点的地址。 因为下一个结点的类型也是struct node, 所以这个指针的类型也必须是"struct node *"类型的指针。*/ int data

2021-12-25 18:14:39 255

原创 我的第一本算法书+算法图解 学习笔记

我的第一本算法书+算法图解

2021-12-22 12:40:09 445

原创 纸牌游戏——《啊哈算法》第二章第三节

// 2.3节 纸牌游戏#include<stdio.h>struct queue //实现队列{ int data[1000];//存储队列中的元素 int head;//存储队头 int tail;//存储队尾};struct stack //实现栈{ int data[9];//存储栈中的元素 int top;//存储栈顶 /*只有九种不同的牌面,所以桌上最多只有9张牌 C语言下标从0开始,故需要将data数组的大小设为

2021-12-22 12:34:14 2265

原创 啊哈算法的第一章——排序的笔记

啊哈算法的第一章——排序的笔记1.桶排序2.冒泡排序3.快速排序在第一章中,作者介绍了三种排序方法:以下是它们的实现过程:1.桶排序示例代码如下:// 对数据范围在0到1000之间的整数进行排序#include<stdio.h>int main(){ int book[1001], n;//book有记录、标记的意思 for (int i = 0; i <= 1000;i++) { book[i] = 0;//初始化每一个“桶”

2021-12-21 16:51:13 554

原创 C语言基础的排序算法(冒泡排序)

《C Primer Plus》第10章 “数组和指针” 中的习题六涉及到了排序算法的应用,数组中的排序和查找是程序设计中非常基础和重要的算法知识。作为算法入门,现记录之。比较排序/冒泡排序比较排序的基本思想是比较相邻元素的大小关系,并通过交换元素位置的方式调整不符合要求的相邻元素。相邻元素的两两比较,需要通过 n-1 次比较之后才只能保证一个元素到达最终位置。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元首先比较相邻的元素。若前者比后者大,就进行交换对每一对相邻元素作同样的

2021-04-12 13:39:49 256

原创 C语言total+=*start++的解释

《CPrimerPlus》《C Primer Plus》《CPrimerPlus》第十章 “数组和指针” 的10.4.1中给出了一个语句:total+=∗start++total+=*start++total+=∗start++接下来对代码的运行顺序进行一下解构。本代码和下面的代码是等价的: total += *start; start++;即代码的执行流程为:先执行*start解引用,将start指针指向的值进行运算,然后start指针自增。一元运算符*和

2021-04-03 12:11:11 2095 1

原创 C语言的递归在倒序问题中的处理

看到《CPrimerPlus》《C Primer Plus》《CPrimerPlus》第九章“函数”的课后习题 9−109-109−10 ,引发了一些对于递归地使用的思考。题目如下:目标编写一个 to_base_n() 函数,接受两个参数,且第二个参数在 2~102 ~ 102~10 范围内,然后以第二个参数中指定的进制打印第一个参数的数值。例如,to_base_n(129,8129, 8129,8) 显示结果201201201,也就是 129129129 的八进制数。在一个完整的程序中测试该函数。

2021-03-29 21:02:47 736

原创 C语言指针初探

《CPrimerPlus》《C Primer Plus》《CPrimerPlus》第九章“函数”部分专门讲了指针,清晰透彻,现在加入我的一点理解,进行一下总结。ptr = &pooh;//把ptr指向pooh,或者说把pooh的地址赋值给ptrval = *ptr;/* 找出ptr指向的值,*给出存储在指针指向的地址上的值, *ptr相当于获得储存在该地址的值 */ int* pi;//pi指向int类型char* pc;//pc指向c

2021-03-29 12:20:21 156

原创 C语言匹配标记算法循环统计数据

最近做《CPrimerPlus》《C Primer Plus》《CPrimerPlus》第七章的课后习题,做到习题六的时候看到了匹配标记算法的应用,觉得很好很实用,开一篇博客记录一下。题目是这样的:7 - 6目标编写一个程序读取输入,读到 # 停止,报告 ei 出现的次数。输入输出样例:按照我原先的想法,我可能会这样写:if(ch=='e'&&++ch=='i'){ cnt++;}但是,对于这类问题,还可以运用匹配标记算法进行改进。代码如下:#include &

2021-03-23 09:42:02 400

原创 C语言打印字符时的小细节

最近做《CPrimerPlus》《C Primer Plus》《CPrimerPlus》第七章课后题,其中的第二题给了我一点启发。题目是这样的:7 - 2编写一个程序读取输入读到 # 字符为止,程序要打印每个输入的字符以及对应的 ASCIIASCIIASCII 码(十进制),每行打印 8 个字符 - ASCIIASCIIASCII 码 组合。建议:使用字符计数和求模运算符(%)在每八个循环周期时打印一个换行符。输出形式如下:我最先给出的代码为:#include <stdio.h>

2021-03-23 09:22:54 264

原创 C语言while的小细节

《C primer plus》的第五章——运算符、表达式和语句,看到思考题第八题的时候,发现了一个以前可能会忽略的点。有关while和n++,n--的问题

2021-03-12 20:12:07 394

原创 问题

目前还不会的问题,等看完C primer plus后可能会懂

2021-03-01 20:27:01 444

原创 翁恺老师C语言课部分题目/零碎知识点解析总结

这是浙江大学翁恺老师在中国大学MOOC上的C语言程序设计课程,现将初学时遇到的问题和日常可能不会注意的知识点总结一遍

2021-02-08 20:37:24 483

原创 PTA问题回顾

PTA问题回顾

2021-02-05 20:20:22 807

card_game2-3.c

C语言实现纸牌游戏

2021-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除