- 博客(898)
- 资源 (22)
- 收藏
- 关注
原创 计算机组成原理之计算机系统的工作原理
程序运行时,CPU从内存中取出指令,通过控制器的译码,按指令要求从存储器中取出数据进行运算或逻辑操作,然后将结果送回内存。CPU作为核心部件,负责控制整个计算机的运行,存储器用于存储数据和指令,输入设备和输出设备分别用于数据的输入和输出。CPU从内存中取出一条指令,通过控制器对指令进行译码,明确指令的操作类型和所需操作数的地址,然后执行相应的运算或逻辑操作,最后将结果存储到指定位置。CPU通过地址总线访问存储器中的数据和指令,通过数据总线传输数据,通过控制总线发送控制信号。
2024-09-21 10:44:17 270
原创 计算机组成原理之计算机软件和硬件的关系
软件发展促进硬件创新:软件的需求和进步也会对硬件提出新的要求,推动硬件技术的不断创新。例如,随着大数据、人工智能等技术的发展,对计算能力和存储能力的需求不断增加,促使硬件厂商不断研发新的处理器、存储设备等。硬件发展推动软件进步:随着硬件性能的提升(如CPU速度的提高、内存容量的增加等),软件可以设计得更加复杂、功能更加强大。同时,新硬件的出现往往要求软件进行相应的优化和适配,以充分发挥硬件的性能。没有硬件,软件就无法执行。软件是硬件功能的体现:软件通过指令控制硬件的操作,使硬件能够完成各种复杂的任务。
2024-09-21 10:44:01 234
原创 计算机组成原理之计算机硬件的基本组成
这些部件虽然不直接参与数据的运算和处理,但对于计算机的正常运行和性能提升起着至关重要的作用。CPU是计算机的核心部件,负责执行计算机程序中的指令,完成数据的算术运算和逻辑运算。它由运算器和控制器组成,其中运算器负责执行各种算术和逻辑运算,而控制器则负责协调和指挥计算机各个部件的工作。输入设备是用户和计算机之间进行信息交换的接口,用于将外部信息(如文字、图像、声音等)转换为计算机能够识别和处理的形式。输出设备用于将计算机处理后的结果(如文字、图像、声音等)以人们可以感知和理解的形式输出。
2024-09-20 07:15:46 189
原创 计算机系统的五大组成部分
除了上述核心部件外,计算机还可能需要连接各种外部设备,如U盘、打印机、摄像头等,以扩展其功能或进行数据传输。这些外部设备通过接口与计算机相连,实现数据的输入和输出。存储器用于存储数据和指令,分为内存和辅助存储器(如硬盘)。辅助存储器容量大,可长期保存数据。CPU是计算机的核心部件,负责执行计算和控制计算机的操作,由运算器和控制器组成。输入设备用于将数据和信息输入到计算机中,常见的输入设备有键盘、鼠标、扫描仪等。输出设备用于将计算机处理后的结果输出给用户,常见的输出设备有显示器、打印机等。
2024-09-20 07:15:31 205
原创 数据结构之十大排序算法说明与举例
举例:[170, 45, 75, 90, 802, 24, 2, 66] 排序后为 [2, 24, 45, 66, 75, 90, 170, 802]。举例:[9, 8, 3, 7, 5, 6, 4, 1] 排序后可能为 [1, 3, 4, 5, 6, 7, 8, 9]。举例:[3, 6, 8, 10, 1, 2, 1] 排序后可能为 [1, 1, 2, 3, 6, 8, 10]。举例:[64, 25, 12, 22, 11] 排序后为 [11, 12, 22, 25, 64]。
2024-09-19 09:27:46 613
原创 数据结构之排序算法说明与举例 C语言实现
排序算法是计算机科学中的一个重要概念,它用于将一组数据按照一定的顺序排列。常见的排序算法有很多种,下面介绍十大常用的排序算法,并给出C语言实现的示例。
2024-09-18 07:37:43 335
原创 数据结构之十大排序算法是那些
外部排序一般使用归并排序的思想,先对待排序的数据进行分块,对每一块使用内部排序算法进行排序,然后将排序后的块进行归并,直到得到完全有序的序列。将已有序的子序列合并,得到完全有序的序列;通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。然后在剩下的数当中再找最小(或最大)的与第二个位置的数交换,依此类推,直到第n-1个元素和第n个元素比较为止。
2024-09-18 07:37:25 393
原创 数据结构之外部排序
其基本原理是将待排序的文件分割成多个能够装入内存的子文件,利用内部排序算法对这些子文件分别进行排序,然后逐步合并这些有序的子文件,最终得到整个文件的有序序列。初始归并段的生成:在外部排序开始时,可以通过多种方式生成初始归并段,如简单地将文件分割后排序,或使用更复杂的置换选择排序算法,后者可以在生成归并段时不受内存大小的严格限制。总之,外部排序是一种处理大文件排序的有效方法,通过合理的文件分割、内部排序、多路归并以及优化策略,可以在有限的内存资源下实现高效的数据排序。
2024-09-17 16:09:55 198
原创 数据结构之基数排序简介与举例
基数排序(Radix Sort)是一种非比较型整数排序算法,通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。它基于多关键字排序的思想,将一个逻辑关键字分为多个关键字,适用于大范围数据排序,特别是位数较少的整数排序。基数排序的效率通常高于传统的比较排序算法,时间复杂度一般为O(d(n+k)),其中d是最大数的位数,n是数组的长度,k是桶的数量。此外,基数排序是一种稳定的排序算法,即相等的元素在排序后的序列中保持原有的顺序。
2024-09-16 11:25:52 396
原创 数据结构之二路归并排序
二路归并排序的关键在于合并操作,它保证了每次合并后的子序列都是有序的。这种算法的时间复杂度是O(n log n),其中n是序列的长度。它是一种稳定的排序算法,适用于大量数据的排序。2、重复将相邻的两个子序列合并成一个有序序列,直到所有子序列合并成一个有序序列。1、将待排序序列分成若干个子序列,每个子序列只有一个元素,视为已排序。将待排序序列分成若干个子序列,每个子序列只有一个元素,视为已排序。重复上述合并过程,直到所有子序列合并成一个有序序列。将相邻的两个子序列合并成一个有序序列。
2024-09-16 11:25:31 546
原创 数据结构之简单选择排序介绍与举例
11, 12, 22, 25, 64] (将22与25交换,此时22已在正确位置,实际上这一步可以省略交换操作,但为了保持算法的一致性,仍然进行交换)然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。给定数组 [64, 25, 12, 22, 11],进行简单选择排序。最终得到排序后的数组:[11, 12, 22, 25, 64]。[11, 25, 12, 22, 64] (将64与11交换)[11, 12, 25, 22, 64] (将25与12交换)
2024-09-14 01:56:52 298
原创 数据结构之冒泡排序、冒泡排序实现举例
冒泡排序是一种简单直观的排序算法,它的基本思想是:通过对待排序序列从前向后(或从后向前),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小(或较大)的元素逐渐从后部(或前部)移向前部(或后部),就像水底下的气泡一样逐渐向上冒。这段代码定义了一个BubbleSort函数,它接受一个整型数组arr和数组的长度n作为参数,对数组进行冒泡排序。在main函数中,我们定义了一个待排序的数组arr,并调用BubbleSort函数对其进行排序,最后打印排序后的数组。
2024-09-13 16:45:00 251
原创 数据结构之折半插入排序概念、折半插入排序的具体步骤、折半插入排序的具体代码示例
具体来说,就是先将要插入的元素与已排序序列的中间元素进行比较,根据比较结果决定是向左还是向右继续查找插入位置,直到找到合适的位置为止。折半插入排序通过二分查找减少了比较元素的次数,但元素移动的次数与直接插入排序相同,因此时间复杂度仍为O(n^2),但在某些情况下,特别是当输入数组部分有序时,其性能会比直接插入排序更好。1、初始化:将数组分为已排序和未排序两部分,通常已排序部分初始时只包含数组的第一个元素,未排序部分包含其余元素。6、重复:对未排序部分的下一个元素重复步骤2至5,直到所有元素都排序完成。
2024-09-13 16:44:40 390
原创 数据结构之直接插入排序、直接插入排序算法的实现示例
直接插入排序的基本思想就是,把待排序的序列分成两部分,一部分是已经排好序的,另一部分是还没排好序的。然后,我们就把还没排好序的部分的第一个元素,插到已经排好序的部分的适当位置,这样,未排序的部分就少了一个元素,而已经排序的部分就多了一个元素。在main函数中,我们定义了一个待排序的数组arr,并调用InsertSort函数对其进行排序,最后打印排序后的数组。给定数组 [5, 2, 9, 1, 5, 6],应用直接插入排序后,数组变为 [1, 2, 5, 5, 6, 9]。
2024-09-12 15:48:17 614
原创 数据结构之排序的基本概念
排序(Sorting)是指将一组记录(或数据元素)按照某个关键字(或字段)的大小关系进行排列的过程。关键字可以是记录中的一个或多个字段,用于确定记录的排序顺序。
2024-09-12 15:47:55 492
原创 数据结构之算法的分析和应用
数据结构之算法的分析和应用是计算机科学和软件工程的核心内容之一。通过对算法复杂度的分析和算法特性的理解,我们可以评估算法的性能并选择最适合特定任务的算法。同时,算法在数据处理与分析、网络安全、生物信息学、多媒体处理等多个领域都有广泛的应用,为这些领域的发展提供了强有力的支持。
2024-09-11 03:28:27 481
原创 字符串模式匹配有哪些常见应用场景
搜索引擎:在大规模文本集合中查找关键字或短语时,搜索引擎利用高效的字符串匹配算法(如KMP算法、Boyer-Moore算法等)来快速定位用户输入的搜索关键词在海量文本中的位置,并返回相关的搜索结果。字符串匹配法可以用于过滤特定的数据包,例如根据数据包中的某个字段或特定的字符串进行匹配,以实现数据包的筛选和过滤。例如,在音频文件中查找特定的音频片段,或在视频流中查找特定的图像帧。数据挖掘:在数据分析领域,字符串模式匹配算法用于在大量的数据中查找特定的字符串或模式,以进行数据挖掘、统计分析或模式识别等任务。
2024-09-11 03:28:08 764
原创 数据结构之字符串模式匹配
字符串模式匹配是计算机科学中的一个基础且重要的问题,其核心是在一个较长的文本字符串(通常称为“文本”或“主串”)中搜索一个较短的字符串(通常称为“模式”或“子串”),以查找模式字符串在文本字符串中所有出现的位置。这个问题在许多应用中都非常有用,比如文本编辑器的查找功能、生物信息学中的基因序列分析、网络安全中的病毒扫描等。
2024-09-10 08:00:33 520
原创 具体的散列表实现示例
在这个示例中,HashTable 类使用了一个列表 self.table 来存储链表头节点,每个链表用于解决相同哈希值(即冲突)的键值对。_hash 方法是一个简单的哈希函数,它使用取模运算将关键字映射到表中的一个索引。例中,我们将使用链地址法(拉链法)来处理冲突,并使用Python的列表(list)和字典(dict)来模拟散列表的行为。不过,为了更贴近底层实现,我们不会直接使用Python的内置字典,而是自己实现一个简单的散列表。
2024-09-10 08:00:07 336
原创 数据结构之散列表
散列表通过散列函数h(k),将一个可能很大的集合U映射到一个较小的有序表T(即散列表)中,从而极大地压缩了存储空间。在这个过程中,关键字k与其在散列表中的存储位置p之间建立了对应关系,即p = h(k)。散列函数的设计是散列表的核心,其目标是尽量减少不同关键字映射到同一位置(即冲突)的可能性。
2024-09-09 09:18:42 501
原创 B树查找和删除操作的示例
如果K位于根节点的两个相邻关键字Ki和Ki+1之间(或K等于其中一个关键字),则选择Ki右边的子节点(注意:这里假设关键字是按升序排列的,且每个节点都包含n个关键字,n+1个子节点的指针)。4、特殊情况:如果删除操作导致根节点中的关键字数量少于m/2 - 1,并且根节点没有兄弟节点可以合并,则可能需要降低树的阶或将根节点与其唯一的子节点合并,从而形成一个新的根节点。3、递归查找:重复步骤1和2,直到找到包含K的叶子节点或到达一个不包含K的叶子节点(此时查找失败)。如果在叶子节点中没有找到K,则查找失败。
2024-09-09 09:18:26 398
原创 数据结构之b树及其基本操作,b+树的基本概念
同时,由于内部节点不存储数据,这使得B+树能够拥有更高的分支因子(即更多的子节点),从而减少树的高度,提高查询效率。1、所有值都存储在叶子节点:在B+树中,所有的值都存储在叶子节点中,并且叶子节点之间通过指针相连,形成了一个有序的链表。1.每个节点有m/2到m个子节点(m是B树的阶,一个节点最多可以有的子节点的数量),根节点除外,根节点至少有两个子节点(如果树不为空)。3、删除:首先找到要删除的关键字所在的节点,然后删除它,并可能需要通过节点的合并或重新分配来维护树的平衡。3.节点中的关键字按升序排列。
2024-09-08 04:22:18 158
原创 红黑树的具体代码实现
这个实现包括了插入操作和插入后的修复操作(insert_fixup),以及左旋和右旋操作。注意,这个实现假设了所有空指针都指向一个哨兵节点NIL,它的颜色总是黑色,这有助于简化边界条件的处理。要查看树的内容,你需要实现一个遍历函数(如中序遍历),因为红黑树是一个有序的二叉树,中序遍历将按升序输出所有键。
2024-09-08 04:21:58 234
原创 数据结构之红黑树
红黑树是一种自平衡的二叉查找树,它在计算机科学中用于存储有序的数据集合,如关联数组和数据库索引。红黑树通过确保树的大致平衡来避免最坏情况下的操作性能,如查找、插入和删除操作的时间复杂度保持在O(log n)。
2024-09-06 10:47:09 316
原创 平衡二叉树与B树、B+树的主要区别是什么
是一种特殊的二叉搜索树,其任意节点的两个子树的高度差的绝对值不超过1。通过旋转操作来维持树的平衡,保证树的深度不会过大,从而提高搜索、插入和删除的效率。常见的实现有AVL树和红黑树等。
2024-09-06 10:46:51 222
原创 数据结构之平衡二叉树
平衡二叉树(Balanced Binary Tree)是一种特殊的二叉搜索树,它通过某种机制来保持树的平衡,从而确保树的高度不会过高,进而保证树的各种操作(如搜索、插入、删除)都能保持较高的效率。在平衡二叉树中,任意节点的两个子树的高度差(平衡因子)的绝对值不超过一个给定的界限(通常为1),这个界限保证了树的平衡性。
2024-09-05 11:54:07 532
原创 二叉搜索树有哪些实际应用案例
当系统捕捉到车牌图像并识别出车牌号码后,可以在二叉搜索树中快速查找该车牌号码是否存在于数据库中,以判断车辆是否合法或是否有违章记录等。在需要执行范围查询的应用场景中,如数据库查询中的日期范围、价格范围等,二叉搜索树可以提供快速的查询响应。通过将这些数据存储在二叉搜索树中,可以在插入新数据时快速检查是否存在重复项,从而避免数据重复的问题。在数据库和文件系统中,二叉搜索树常被用作索引结构,以加快数据的检索速度。通过将数据的关键字作为索引存储在二叉搜索树中,可以快速定位到数据在存储介质上的位置。
2024-09-05 11:53:51 309
原创 数据结构之二叉树搜索树
3、删除的是有两个子节点的节点:找到该节点的右子树中的最小节点(或左子树中的最大节点),将其值复制到要删除的节点上,然后删除那个最小(或最大)节点。1、节点的左子树只包含小于节点值的元素:对于树中的每个节点X,其左子树中的所有元素的值都小于X的值。2、节点的右子树只包含大于节点值的元素:对于树中的每个节点X,其右子树中的所有元素的值都大于X的值。2、删除的是只有一个子节点的节点:将该节点的父节点直接指向其子节点。从根节点开始,如果待查找的值等于当前节点的值,则返回该节点;如果当前节点为空,则插入新节点。
2024-09-04 11:08:20 382
原创 折半查找的具体实例
假设我们有一个有序数组 arr = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19],并且我们想要查找数字 7 是否在这个数组中。
2024-09-04 11:08:00 265
原创 数据结构之折半查找
折半查找(Binary Search),也称为二分查找,是一种在有序数组中查找特定元素的搜索算法。其工作原理是,通过不断将待查找的区间分成两半,并判断待查找的元素可能存在于哪一半,然后继续在存在可能性的那一半区间中查找,直到找到该元素或者区间被缩小为0为止。
2024-09-03 10:11:41 575
原创 数据结构之分块查找
分块查找(Block Search)又称索引顺序查找,是介于顺序查找和二分查找之间的一种查找方法。它通过将查找表分为若干个子块(或称为索引表),每个子块内部元素可以无序,但子块之间是有序的(即第一个子块中的最大元素小于第二个子块中的最小元素,以此类推),并且建立一个索引表,索引表中的每个元素包含对应子块中的最大(或最小)关键字和该子块在查找表中的起始位置。
2024-09-03 10:11:22 377
原创 顺序查找的具体实例
在这个实例中,我们定义了一个包含10个整数的数组 arr,并想要查找整数 9 是否存在于这个数组中。我们编写了一个名为 sequential_search 的函数来实现顺序查找,该函数接受数组 arr 和目标值 target 作为参数,并返回目标值在数组中的索引(如果找到的话)。在这个例子中,由于 9 确实存在于数组中,并且其索引为 7,因此程序将输出 元素9在数组中的索引为:7。假设我们有一个整数数组 arr,我们想要查找一个特定的整数 target 是否存在于这个数组中。
2024-09-02 13:46:21 935
原创 数据结构之顺序查找
顺序查找(Sequential Search),又称线性查找,是查找技术中最基本、最简单的一种。它的基本思想是从查找表的一端开始,逐个检查每个数据元素的关键字,直到找到所需的数据元素或检查完所有元素为止。顺序查找对查找表的存储结构没有特殊要求,既适用于顺序存储结构,也适用于链式存储结构。
2024-09-02 13:45:58 865
原创 数据结构之查找的基本概念
原理:每次比较查找表中间元素的关键字与给定值,若相等则直接返回,若小于则在前半部分继续查找,若大于则在后半部分继续查找,直到找到或查找范围为空。优缺点:查找效率高,平均查找长度能达到常数级别,但性能取决于哈希函数的质量,哈希函数设计不当可能导致大量冲突,降低查找效率。原理:从查找表的一端开始,逐个检查每个数据元素的关键字,直到找到所需的数据元素或检查完所有元素。操作:除了查找操作外,还可以插入查找表中不存在的数据元素,或从查找表中删除已存在的数据元素。定义:在查找过程中同时允许插入和删除操作的查找表。
2024-09-01 08:05:04 434
原创 数据结构之关键路径
定义:AOE网是一个带权的有向无环图,其中顶点表示事件,弧表示活动,权表示活动持续的时间。关键路径上的活动称为关键活动,这些活动的提前或拖延将直接影响整个工程的进度。在项目管理中,通过确定关键路径,项目经理可以清晰地了解到哪些活动对项目的进度至关重要,从而合理分配资源,确保项目按时完成。活动的最早开始时间等于其起点事件的最早发生时间,活动的最晚开始时间则等于其终点事件的最迟发生时间减去活动的持续时间。同时,项目经理还可以通过分析关键路径上的活动,找出可能存在的瓶颈或风险点,并采取相应的措施进行预防和应对。
2024-09-01 08:04:48 456
阿里云批量上传代码制品库插件:migrate-local-repo-tool
2024-03-14
MySQL5.6版本的下载、安装与配置
2024-02-29
java开发环境配置jdk版本:jdk-8u131-windows-x64,Java开发环境搭建配置软件
2024-02-29
teighafileconverter-qt5-vc10dll可执行安装包
2023-04-27
vue-edufront0901.zip
2020-08-30
在线教育项目后端组件.zip
2020-07-13
上传头像模块服务器资源 .zip
2020-06-23
在线教育项目数据库文件.zip
2020-06-21
docker中的redis连接测试桌面客户端工具.zip
2020-06-09
redis中文注释版.conf
2020-06-08
JFreechart.zip
2020-05-03
CSS2.0.zip
2020-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人