数据结构
ZhangJiQun&MXP
大语言模型训练需要百卡算力,但人脑的功耗只有20瓦。道阻且长。
展开
-
CPU内部结构,就绪和阻塞,进程控制块
目录CPU内部结构:就绪和阻塞区别:进程控制块:PCB:是系统感知进程存在的唯一标志CPU内部结构:分为控制单元、运算单元、存储单元和时钟等几个主要部分。运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑部件(ALU:Arithmetic and Logic Unit)、寄存器组和状态寄存器组成。控制器是计算机的控制中心,它决定了计算机运行过程的自动化。它不仅...原创 2020-01-08 17:54:33 · 439 阅读 · 0 评论 -
最短路径问题---Dijkstra算法详解
Dijkstra算法介绍算法特点:迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。算法的思路Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,初始时,原点 s 的路径权重被赋为 0 (dis...原创 2018-11-04 22:09:57 · 258 阅读 · 0 评论 -
二叉排序树和堆的区别
1、结构上: 二叉排序树:左子树小于根节点,根节点又小于右子树。堆(小堆):根节点小于左右子树,但是左右子树没有大小之分。2、作用上: 从上面各自的结构上的分析可得:二叉排序树是用来做查找的,而堆是用来做排序的。...原创 2018-11-01 11:20:29 · 887 阅读 · 0 评论 -
二叉查找树(BST)、平衡二叉树(AVL树) 右单旋: 左单旋: 左右双旋: 右左双旋: AVL树查找成功失败计算
二叉查找树(BST)、平衡二叉树(AVL树)AVL树就是平衡二叉树,左子树和右子树的高度之差绝对值不超过1。而且规定,平衡二叉树的每个节点的平衡因子只能是-1 ,1 ,0;按照公式 平衡因子 = 右子树的高度 - 左子树的高度-1 : 表示左子树比右子树高1 : 表示右子树比左子树高0 : 表示左子树和右子树等高例子有的元素是英文单词,其实就是按照26字母顺...原创 2018-10-27 17:20:03 · 1357 阅读 · 2 评论 -
平衡搜索树的左单旋、右单旋、左右双旋、右左双旋
在平衡搜索树中进行插入结点时,有可能会破坏整棵树的平衡。为了保证平衡不被破坏,就要对一些节点进行旋转,从而来降低树的高度,这样也能保证树的平衡。一、左单旋:(上图中的▲结点有可能是NULL,也有可能不为空。。。下同)从图中可以看出,进行左单旋时,只是改变了parent的右指针以及subR的左指针指向。将subR的左子树(subRL)作为parent的右子树,并让parent作为subR...原创 2018-10-27 16:27:02 · 250 阅读 · 0 评论 -
字典和列表的区别,字符串、列表、元组、字典、集合的区别
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用"{ }"标识。字典由索引(key)和它对应的值value组成。字符串特性:不能修改的字符序列。除了不能修改,可把字符串当成列表一样处理。访问:访问字符串中某个字符同访问...原创 2018-10-27 15:16:39 · 8053 阅读 · 0 评论 -
冒泡排序
冒泡排序: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。#include <iostream>#include <string>using ...原创 2018-10-31 10:48:28 · 154 阅读 · 0 评论 -
详解快速排序
快速排序: 两边选i,j 按照大的划分,两边一遍小一遍大,带递归两边,在重复。#include<iostream>using namespace std;void quick_sort(int array[], int start, int last){ int i = start; int j = last; cout<< last ...原创 2018-10-21 00:06:27 · 239 阅读 · 0 评论 -
让你彻底明白指针
指针就是用来存储地址的,int *p:这是定义一个指针;//这是的p就是一个地址;*p:就是取出p中地址的值,也就是取值符;&p:就是看看p的存储地址是什么;p:就是p里面存储的内容;上代码吧:#include <iostream>using namespace std;int main(){ int *a; int b=1;...原创 2018-10-19 17:28:47 · 296 阅读 · 0 评论 -
堆——最大堆/最小堆的初始化、增加、删除等基本操作
堆的定义:堆是一种经过排序的完全二叉树或满二叉树,最大堆:就是不不断变得进行树元素替换,最终是树呈现上面数值最大;最小堆:就是不不断变得进行树元素替换,最终是树呈现上面数值最小; 堆的定义堆是一种经过排序的完全二叉树或满二叉树,n个元素的序列{k1,k2,…,kn},当且仅当满足如下关系时被成为堆(1)Ki <= k2i 且 ki <= k2i-1或 (2) Ki ...原创 2018-10-16 15:23:49 · 7569 阅读 · 1 评论 -
让你透彻快速知道图的遍历之 、深度搜索(黑白块问题)、广度搜索之线性表存储和矩阵存储的遍历
深度优先搜索、广度优先搜索唯一:(邻接矩阵表)深度优先搜索、广度优先搜索唯一:(邻接线性表)1. 深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点...原创 2018-10-16 13:44:43 · 392 阅读 · 0 评论 -
二叉树的四种遍历方法笔记 二叉树删除后操作
总体来说就是从:顶点,左侧,底部,不断地数数。前序:第一位是顶点; 确定的根节点。中序:顶点将分开左右树;确定根节点的左右树。后序:最后一点是顶点;确定根节点。给出前中的唯一树;给出后中的唯一树;给出前后不能得出唯一树:不能确定一个父亲下有一个孩子,这个孩子是左孩子还是右孩子;反例:单链ABC,C的左右不确定。二叉树的遍历(traversing binary ...原创 2018-10-16 11:21:45 · 301 阅读 · 0 评论 -
并查集,合并 以及优化
并查集 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 并查集是一种树形结构,又叫“不相交集合”,保持了一组不相交的动态集合,每个集合通过一个代表来识别,代表即集合中的某个成员,通常选择根做这个代表。并查集的优化:Union(x, y)时按秩合并:合并时,如果两个集合的秩相同,任选...原创 2018-10-15 16:46:11 · 2366 阅读 · 2 评论 -
数据结构之图的基本概念
定义:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 在图中需要注意的是: (1)线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)。 (2)线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(...原创 2018-10-15 11:09:44 · 1297 阅读 · 0 评论 -
数据结构,完全二叉树,满二叉树
霍夫曼树:每个节点要嘛没有子节点,要么有两个子节点完全二叉树:满二叉树的一部分或者全部。满二叉树:每个父亲都有2个叶子。 1 1 / \ / \ 1 1 ...原创 2018-10-15 11:08:42 · 324 阅读 · 0 评论 -
C++中char * 和char []的区别 堆栈区别 JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)
在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",问题的实质在于栈与堆控制权的问题,我们只能操作堆(heap):这样的好处是灵活性大,我们可以自由的定义,内存申请,写入,资源回收。对于栈(stack)是:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。前者改变其内容程序是会崩...原创 2018-10-15 10:54:36 · 1171 阅读 · 0 评论 -
完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数, 第 h 层所有的结点都连续集中在最左边 满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树
定义补充:完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树...原创 2018-10-15 10:44:54 · 3385 阅读 · 0 评论 -
完全二叉树,满二叉树,霍夫曼树以及最小带权路径长度要和AVL树成功失败相比较
AVL树成功失败:https://blog.csdn.net/qq_38998213/article/details/83447989霍夫曼树(哈夫曼):每个节点要嘛没有子节点,要么有两个子节点。 带权路径长度:WPL。WPL = 1*9 + 2*5 + 3*2 + 4*1 + 4*2 =37另外还可以有另外一个方法,结合算法描述仔细观察发现最小带权路径长...原创 2018-10-16 15:21:27 · 832 阅读 · 0 评论