- 博客(48)
- 收藏
- 关注
原创 深度学习(一)
随机梯度下降:SGD是每次使用一个训练样本xix_ixi和标签yiy_iyi进行一次参数更新,SGD通过一次执行一次更新解决了BGD中,每一次参数更新都要计算很多相似样本的梯度的问题,因此通常SGD的速度会非常快而且可以被用于在线学习。SGD以高方差的特点进行连续参数更新,导致目标函数严重震荡,然而SGD的震荡特点导致其可以跳到新的潜在的可能更好的局部最优点批量梯度下降:BGD。
2024-08-23 08:28:08
842
1
原创 计算机组成原理必备知识点(2024.8.14)
2024.8.14,最新一次更新计组的笔记,这次是按照考研书的章节顺序进行编写的,希望对需要的同学有帮助
2024-08-14 15:20:50
1649
原创 计算机组成原理必备知识点
中断处理程序与调用子程序的过程有些类似,但它们的主要区别如下:1)中断服务程序的执行是由随机的中断事件引起的,子程序的执行是由程序员预先、有目的地安排好的(由一条调用子程序转入)。2)中断服务程序一般与被中断的现行程序毫无关系,子程序的执行收到主程序或上层子程序的控制。3)中断服务程序的入口地址从中断隐指令(硬件)自动获得,子程序由调用指令给出地址。4)不存在同时调用多个子程序的情况,但是有可能发生多个外设同时请求CPU为自己服务的情况。5)中断的处理与调用子程序指令的执行相比,复杂很多。
2024-07-10 20:12:38
897
1
原创 计算机组成原理必备知识点
中断处理程序与调用子程序的过程有些类似,但它们的主要区别如下:1)中断服务程序的执行是由随机的中断事件引起的,子程序的执行是由程序员预先、有目的地安排好的(由一条调用子程序转入)。2)中断服务程序一般与被中断的现行程序毫无关系,子程序的执行收到主程序或上层子程序的控制。3)中断服务程序的入口地址从中断隐指令(硬件)自动获得,子程序由调用指令给出地址。4)不存在同时调用多个子程序的情况,但是有可能发生多个外设同时请求CPU为自己服务的情况。5)中断的处理与调用子程序指令的执行相比,复杂很多。
2024-06-20 12:52:23
1499
1
原创 编程:在二叉排序树T中,已知指针p指向1个结点,指针fp指向p的父亲。p结点有2个孩子,请删除p。要求:(1)用p的中序后继取代p; (2)至少,给出关键程序语句;
【代码】编程:在二叉排序树T中,已知指针p指向1个结点,指针fp指向p的父亲。p结点有2个孩子,请删除p。要求:(1)用p的中序后继取代p;(2)至少,给出关键程序语句;
2024-05-15 21:23:37
383
2
原创 设计非递归算法,编程:在二叉排序树中,打印关键码a, b的公共祖先。注:例,若a是b的祖先,则a不算作公共祖先。反之亦然。
【代码】设计非递归算法,编程:在二叉排序树中,打印关键码a, b的公共祖先。注:例,若a是b的祖先,则a不算作公共祖先。反之亦然。
2024-05-15 21:10:27
397
原创 编程题:实现对一颗树的三种存储方式:父亲数组、子表表示法 、长子-兄弟表示法。
【代码】编程题:实现对一颗树的三种存储方式:父亲数组、子表表示法 、长子-兄弟表示法。
2024-05-06 21:36:52
517
2
原创 编程题:判断一个树的节点(叶子节点除外)是否满足父节点的值等于所有子节点的值之和
【代码】编程题:判断一个树的节点(叶子节点除外)是否满足父节点的值等于所有子节点的值之和。
2024-05-06 20:45:50
461
2
原创 数据结构之树的存储(C语言版)
之前,我们介绍的所有的数据结构都是线性存储结构。本章,我们所介绍的树的结构是⼀种⾮线 性的存储结构。存储的是具有⼀对多的关系的数据元素的集合。树的概念:图中可以看⻅⼀个使⽤树形结构存储的⼀个集合,这个集合就是{A,B,C.......}。对于数据A来 说,和数据B、C、D有关系。对于数据B来说,和E,F,G有关系。这就是⼀对多的关系。我们将⼀对多的关系的集合中的数据元素按照图中的形式进⾏存储,整个存储形状在逻辑结果上 ⾯看,类似于实际⽣活中倒着的树,所以就将这种结构称之为树形结构。
2023-05-26 15:08:32
1261
原创 数据结构之双端队列链式存储(C语言)
先判断right指针所指向的pre指针指向是否为NULL(为空表示此结点前面没有任何结点)(循环判断s的地址是否和right指针所标记的空结点地址是否相同或者s结点地址是否为空)再让right指针所指向的结点的pre指针所指向的结点的地址赋给right指针。将右指针所指向结点地址赋给s(此时s结点即为此被指向的结点)再让right指针所指向的结点的next指针指向s结点。将s的pre指针指向right指针所指向的结点。s的next指针指向左指针所标记的结点。左结点指向s的next指针所指向的结点。
2023-05-20 16:51:01
450
原创 数据结构之双端队列的顺序表实现(C语言)
最后将待删除数据写入x(此时我们认为被右指针指向的数据为脏数据)如果没有满则先在对应下标写入数据(即下标0写入右边插入的数据)先判断左指针是否为0如果为0则说明没有左插的元素。再将左指针向前移动一位,并且取余判断循环。先定义一个变量x来写入待删除元素的数据。如果非空则先将待删除元素的数据写入x。先定义一个变量x用来保存待删除元素。定义一个指针(数组)用来存放元素。再将左指针对应下标位置写入数据k。再将size(实际元素个数)加一。如果不为0则循环打印左插的元素。如果没有满则将左指针减一。
2023-05-20 16:16:43
354
原创 数据结构之链式队列(C语言版)
如果分配成功后就让队首指针的下一个结点指向NULL(即头结点指向NULL)最后判断原队列是否只有一个结点(即判断队尾指针是否指向待删除的结点)再定义一个linkequeue结构体其中包含队头指针和队尾指针。之后再将结点的地址赋给队尾指针(即结点s变成了新的队尾)之后判空(即队首指针的头结点所指向的结点是否为空)如果是则要让队尾指针指向队首指针所指向的头结点。先定义一个链式队列结点(以链表结点形式实现)创建结点p并且将队首指针的头结点指向结点p。再创建一个结点s将数据写入结点。之后再让队尾指针指向结点s。
2023-05-16 23:33:37
260
原创 数据结构之顺序循环队列(C语言版)
创建队头指针和队尾指针来找到数组的头和尾(以索引下标形式表示指针)先判满(即判断q的队尾指针+1再对数组容量取余是否等于队头指针)传入q的指针进去先让q的队头指针和队尾指针为下标0。结构体中的date数组用来存储队列中的数据元素。将结构体q的数组date的队尾指针写入数据x。实现此循环队列通过牺牲一个单元来区分头尾。再用循环数组将队尾指针往后移一个或者循环。先判空(即判断队尾指针是否等于队首指针)再将队首指针往后移动一个位置或者循环。把队首指针处的数据写入x。
2023-05-16 23:06:03
188
1
原创 数据结构之链栈(C语言版)
使用 sstack* 声明链栈中的结点指针,意在强调操作对象是栈中的某个结点。使用 listack 声明链栈中的结点指针,意在强调操作对象是栈;链栈中无栈顶指针,如何实现在栈顶操作,实现先进后出。直接在链表表头进行操作,链表表头相当于栈顶。如果不为空则让p结点指向待删的首元结点。链表结点个数可以动态调节,无需判满。再让头结点指向p结点的下一个结点。以定义单链表的方式来定义链栈。之后再以单链表的形式进行头插。将首元结点的数据赋值给x。再让头结点指向NULL。链栈--单链表实现栈。
2023-05-14 20:28:22
276
原创 数据结构之顺序栈(C语言版)
先判断是否栈空(即栈顶指针是否为-1)如果不是栈满就让栈顶指针往后一格。之后就将栈顶指针往前挪动一个位置。如果不是栈空就将栈顶元素赋值给x。再将栈的下一个位置写入数据k。之后动态内存申请一块空间。再初始化栈顶指针为-1。date是栈中的元素。先创建一个栈的结构体。
2023-05-14 20:06:14
97
原创 带头节点的单链表(C语言版)
node表示是对结点的操作,*linkList是对整个链表的操作(注:linkList是Node*类型的)再创建一个结构体指针,指向头结点(不能直接指向l->next,要考虑空链表的情况)最后返回p(如果找到则返回p的地址,没找到则返回NULL,即遍历完还没找到)找到后让s结点指向指定结点前面的一个结点所指向的(即是指向指定位置的结点)(一定要先让s结点指向p结点的指向的结点,否则s结点就游离了)之后判定的条件是p!如果p不为空则打印p的数据再让p指向下一个结点。让前一个结点指向指定结点p所指向的结点。
2023-05-12 14:57:54
1630
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人