- 博客(63)
- 问答 (3)
- 收藏
- 关注
原创 操作系统的主要功能
操作系统的主要功能处理机管理功能进程创建**原语操作:**提供创建新进程的系统原语,如fork()、exec()等,这些原语在系统态下执行,确保进程创建过程的原子性和安全性。**资源分配:**为新进程分配必要的系统资源,如内存(包括程序正文、堆栈、数据段等)、打开文件描述符、信号处理等。**初始化PCB:**创建进程控制块,记录进程的标识符、状态、优先级、程序计数器、寄存器值、内存映射、资源列表等重要信息。进程状态转换**状态定义:**操作系统定义进程的不同状态,如新建、就绪、运
2024-04-24 02:14:07 1004
原创 操作系统的特性
操作系统支持多道程序设计,即允许多个程序并发执行。通过进程管理和调度机制,操作系统能够在单个处理器上模拟出多个任务同时运行的效果,提高系统资源利用率和用户响应体验。并发性也要求操作系统具备进程同步、互斥和通信等机制,以协调并发执行的进程间的相互关系。
2024-04-23 03:04:14 975
原创 操作系统的作用
操作系统的作用硬件资源管理进程管理:操作系统负责创建、调度、同步、通信和销毁进程,即管理多个程序的并发执行。通过进程调度算法,它决定哪个进程在何时获得处理器执行时间,实现多任务处理和资源共享,确保系统响应性和公平性。存储管理:操作系统管理内存资源,包括内存分配、回收、替换(如虚拟内存中的页面置换)、共享和保护。它通过合理的内存分配策略和地址转换机制,使得多个进程可以安全地共享有限的物理内存,并提供虚拟内存支持,扩大应用程序可用的地址空间设备管理:操作系统管理各类输入输出(I/O)设备,如硬盘、
2024-04-23 02:23:15 681
原创 数据结构-查找
分块查找(索引顺序查找):分块查找(也称为索引查找)是一种在有序数组中进行查找的算法。在进行查找时,首先通过索引找到目标值可能所在的块,然后在对应的块中进行顺序查找。顺序查找(线性查找):顺序查找(Sequential Search)是一种简单的查找方法,它从列表的第一个元素开始,逐个比较元素与目标值的大小,直到找到目标值或遍历整个列表。查找的概念:根据数据存储的方式,查找操作可以分为两种主要类型:静态查找(Static Search)和动态查找(Dynamic Search)。
2024-04-21 20:47:40 629
原创 数据结构-KMP算法
在进行字符串匹配的过程中,当模式串与主串在某个位置发生失配时,KMP算法意识到已有的部分匹配并没有被完全浪费。这是因为,从模式串的起始位置到失配点,有一段子串已经在主串中成功匹配。对于ABABC这个子串,前缀集合{A,AB,ABA,ABAB},后缀集合{C,BC,ABC,BABC}对于ABAB这个子串,前缀集合{A,AB,ABA}后缀集合{B,AB,BAB}对于ABA这个子串,前缀集合{A,AB}后缀集合{A,BA}对AB这个子串,前缀集合{A},后缀集合{B}对A这个子串,前缀集合,后缀集合都为空。
2024-04-21 20:42:34 820
原创 数据结构-动态规划策略
2.算法实现过程(状态与状态转移方程)5.动态规划的时间复杂度分析。4.动态规划的适用条件。1.理解动态规划思想。3.动态规划实现方式。6.典型动态规划问题。
2024-04-19 17:47:43 671
原创 数据结构-分治策略(分治算法)
由于分治算法通常包含问题分解、递归求解子问题以及合并子问题解三个主要步骤,因此时间复杂度分析也围绕这三个方面展开。6.分治算法的时间复杂度分析。1.分治算法的核心思想。5.分治算法的适用条件。4.递归与分治的关系。
2024-04-18 23:18:02 696
原创 数据结构-排序
排序的基本概念:排序是指将一组数据重新排列顺序,通常按照某个特定的顺序进行排列。排序在计算机科学中是非常基础和重要的操作,被广泛应用于各种数据处理和算法中。其中排序包括内部排序和外部排序,内部排序是排序过程中,必须放在内存中的排序,外部排序是指在排序过程中无法全部放在内存中,必须在内存和外存之间移动的排序插入排序:基本思想是每次将一个待排序的记录按其关键字大小插入到前面待排序的子序列中.直接插入排序:直接插入排序(Straight Insertion Sort)是一种简单直观的排序算法,其工作原理是
2024-04-18 18:35:04 403
原创 数据结构-树
在这种算法中,我们会从根节点开始,沿着一条路径尽可能深入,直到达到某个叶节点或目标节点,然后回溯,沿着另一条路径深入,直到遍历完所有节点。树的每个节点代表一个元素,每个节点都包含一个值以及一个指向子节点的列表。根节点没有父节点,叶子节点没有子节点。B+树是一种改进的B树,它的所有键值都存储在叶子节点,并且所有的叶子节点通过指针连接成一个有序链表。二叉树的顺序存储是指使用数组来表示二叉树,其中数组的每个元素存储二叉树中的一个节点。二叉树的链式存储是指使用链表来表示二叉树,其中每个节点存储二叉树中的一个节点。
2024-04-15 03:04:06 795
原创 数据结构-队列
定义:队列是一种特殊的线性数据结构,它的特点是先进先出(FIFO,First In First Out)。循环队列的实现定义:循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。数组实现static class QueueArray{ private int maxSize;//定义数组最大容量 private int front;//定义队列头 private int rear;//定义队列尾
2024-04-12 02:41:13 567
原创 数据结构-栈
当在 ArrayList 的头部插入或删除元素时,需要将数组中的所有元素向后移动一个位置,这样的时间复杂度是 O(n),其中 n 是数组中的元素个数。相比之下,ArrayDeque 是通过循环数组实现的,可以在头部和尾部进行高效的插入和删除操作,时间复杂度是 O(1)。Vector是一个同步的容器,所有的方法都实现了同步,这意味着它可以在多线程环境下安全地访问。Vector是同步的,它的所有方法都是同步的,因此在多线程环境下可以安全地使用。在多线程环境下,如果需要使用同步的容器,可以选择使用Vector;
2024-04-12 02:40:17 543 1
原创 数据结构-单链表
如果需要频繁地进行插入操作,或者需要处理空链表,带头结点的单链表可能是更好的选择。如果不希望占用额外的存储空间,或者需要简化代码,不带头结点的单链表也是一个不错的选择。在带头结点的单链表中,插入操作不需要判断当前链表是否为空,直接将新结点插入到头结点之后即可。在进行链表操作时,如果未检查链表是否为空,直接访问头结点可能会导致空指针异常。实现“插入”操作时需要判断链表是否为空,增加了一定的复杂度。初始化链表时需要单独处理头结点,增加了一定的复杂度。:增加了一个额外的结点,占用一定的存储空间。
2024-04-12 02:39:08 776
原创 Java学习——集合的使用(六)
Collections类 概述 public class Collections extends Object Collections是针对集合操作的工具类 Collections类的常用方法 public static <T extends Comparable<? super T>> void sort(List <T> list):将指定的列表按照升序进行排列 public static void reverse(Lis
2021-11-29 14:38:01 246
原创 Java学习——集合的使用(五)
Comparable此接口对实现它的每个类的对象强加一个总排序。 这种排序被称为类的自然顺序 ,类的compareto方法被称为其自然比较方法 自然排序Compareable的使用 用TreeSet集合存储自定义的对象,无参构造方法使用的是自然排序对元素进行排序的。 自然排序,就是让元素所属的类实现Compareable接口,重写compareTo(T o)方法 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写。 案例:存
2021-11-29 14:35:31 182
原创 Java学习——集合的使用(四)
Map集合 Interface Map<K,V> K:键的类型 V:值的类型 将键映射到值得对象,不能包含重复的键,每个键最多映射到一个值 HashMap能将键值对设置为null类型HashTable不能将键值对设置为null类型 Map集合得基本功能 put方法:添加元素,若元素存在,则修改元素得值 remove方法:移除键值对 clear方法:从此映射中删除所有映射 Size方法:返回键值对的数量
2021-11-29 14:29:26 147
原创 Java学习——集合的使用(三)
Set集合 set集合特点: 不包含重复元素的集合 没有带索引的方法,所以不能使用for循环遍历 创建集合对象,使用Set接口的泛型实现类HashSet HashSet对迭代的顺序不做任何保证(例如,添加的顺序时1,2,3输出可能是2,3,1) 关于哈希值 哈希值是JDK根据对象的地址或者字符串或者数字,算出来的int类型的数值 Object类中有一个方法,hashCode(),可以获取对象的哈希值 has
2021-11-29 14:26:04 442
原创 Java学习——集合的使用(二)
List集合 List概述 它是一个有序集合(序列)用户可以精准的控制每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表允许出现重复的数组 List特点 有序:存储的和取出的元素顺序一致 可重复:存储的元素可以重复 List特有方法 add(int index,E e):将指定的元素插入到列表的指定位置 若超过现有的数组长度,则报错,插入后,插入位置之后
2021-11-29 14:21:36 273
原创 Java学习——集合的使用(一)
集合体系结构 单列集合Collection(泛型接口) 可重复集合List(继承了Collection的子接口) ArrayList(实现了List接口的泛型类) LinkedList(实现了List接口的泛型类) 不可重复集合Set(继承了Collection的子接口) HashSet(实现了Set接口的泛型类) TreeSet(实现了Set接口的泛型类) 双列集合Map
2021-11-29 14:16:19 271
原创 Java学习———泛型程序设计
为什么要用泛型程序设计 泛型程序设计意味着编写的代码可以对多种不同类型的对象重用。 例如,你并不想为收集String和File对象编写不同的类。实际上也不需要这样做,因为一个ArrayList类就能收集任何类的对象。这就是泛型程序设计的一个例子。 类型参数的好处 泛型提供了一个更好地解决方案,类型参数。ArrayList类有一个类型参数用来指示元素的类型。 Var a=new ArrayList<String>(); 这使得代码具有更好地可读性。人们一看就知道
2021-11-29 14:04:33 667
原创 Java学习——内部类
什么是内部类? 内部类就是在一个类中定义另一个类,像在类A的内部定义一个类B,类B就称为内部类 内部类格式 创建内部类的格式: public class 类名{ 修饰符 class 类名{ }}内部类的访问特点 内部类能直接访问外部类的成员,甚至是私有成员 外部类访问内部类必须要创建对象 成员内部类 在外部类的成员位置的内部类称为成员内部类 外界创建成员内部类的格式: 外部类名.内部类名 对象名=外部类对象.内部类对象...
2021-11-16 15:30:44 978
空空如也
Java压缩流的ZipInputStream相关问题
2023-09-23
学校实训到底选哪个专业能够顺应时代的发展?
2021-11-13
用pyqt做出来的系统,暑期实习该报哪方面的工作,算法不太好
2021-05-28
暑期实习,用pyqt5开发出来的软件会被重视吗?
2021-05-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人