- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 操作系统 五(文件系统)
文件是指由创建者所定义的,具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两类。在有结构文件中,文件由若干个相关记录组成。而无结构文件则被看成一个字节流。文件在文件系统中是一个最大的数据单位,他描述了一个对象集。
2023-02-18 15:23:51 860 1
原创 操作系统 二(进程管理)
由程序、数据、进程控制块三部分组成为了使程序可以并发执行,且可以对并发执行的程序加以描述和控制。不同角度的定义:进程是程序的一次执行;进程是一个程序及其数据在处理机上顺序执行时所发生的活动;进程是系统进行资源分配和调度的一个独立单位。传统OS中的进程定义为:进程是程序的执行过程,是系统进行资源分配和调度的一个独立单位。为使参与并发执行的每个程序(含数据)都能独立地运行,在OS中为之配置一个专门的数据结构,称之为进程控制块(PCB)系统为了管理进程设置的。
2023-02-18 09:51:35 904
原创 6)Django Cookies/Session,中间件,Nginx+uwsgi安装配置
中间件可以定义四个方法,分别是:自定义中间的步骤:在 app 目录下新建一个 py 文件,名字自定义,并在该 py 文件中导入 MiddlewareMixin:自定义的中间件类,要继承父类 MiddlewareMixin:pass在 settings.py 中的 MIDDLEWARE 里注册自定义的中间件类:自定义中间件类的方法有:process_request 和 process_response。
2022-12-31 19:42:41 539
原创 5)Django Admin管理工具,Form组件,Auth
我们可以自定义管理页面,来取代默认的页面。比如上面的 "add" 页面。我们想只显示 name 和 email 部分。以上代码定义了一个 ContactAdmin 类,用以说明管理页面的显示格式。里面的 fields 属性定义了要显示的字段。由于该类对应的是 Contact 数据模型,我们在注册的时候,需要将它们一起注册。显示效果如下:我们还可以将输入栏分块,每个栏也可以定义自己的格式。['Main',{}],}])上面的栏目分为了 Main 和 Advance 两部分。
2022-12-31 19:28:26 769
原创 4)Django模型,表单,视图,路由
Django 规定,如果要使用模型,必须要创建一个 app。我们修改 TestModel/models.py 文件,代码如下以上的类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。
2022-12-31 15:46:10 1101
原创 3)Django模板
然后,等用户需要用到form表单提交数据的时候,会携带这个 input 标签一起提交给中间件 csrf,原因是 form 表单提交数据时,会包括所有的 input 标签,中间件 csrf 接收到数据时,会判断,这个随机字符串是不是第一次它发给用户的那个,如果是,则数据提交成功,如果不是,则返回403权限错误。3、在 statics 目录下创建 css 目录,js 目录,images 目录,plugins 目录, 分别放 css文件,js文件,图片,插件。
2022-12-31 14:57:44 638
原创 数位统计DP
数位统计 DP 用于数字的数位统计,是一种比较简单的 DP 套路题。一个数字的数位有个位、十位、百位,等等,如果题目和数位统计有关,那么可以用DP思想,把低位的统计结果记录下来,在高位计算时直接使用低位的结果,从而提高效率。用下面一道例题详解数位统计 DP 的建模和两种实现:递推和记忆化搜索。数位统计有关的题目,基本内容是处理“前导 0”和“数位限制”
2022-12-31 11:40:51 1043
原创 pycharm运行显示未安装包,但其实已经安装
在下载了专业版的pycharm后,在pycharm终端运行项目的时候,无论什么包,只要你下载,就是显示已经存在(当然存在了,我虚拟环境之前都下的有)但是你一运行它就显示没有这个包真是米奇妙妙屋 后来搜了半年没解决 发现还有一个问题,就是在我打开pycharm终端的时候会有一行红字。∶无法加线文件C:\(Users\8b155]Documents\[WindowsPowerShell pofile.ps1,因为在此系统上禁止运行脚本。
2022-12-28 16:53:10 3229 1
原创 贪心法算法
把整个问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直到所有步骤结束;在每一步都不考虑对后续步骤的影响,在后续步骤中也不再回头改变前面的选择。简单来说就是走一步看一步。贪心法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。这种局部最优选择并不总能获得整体最优解,但通常能获得近似最优解。
2022-12-24 13:37:09 2575
原创 并查集算法
并查集(Disjoint Set):一种非常精巧而实用的数据结构。算法应用:用于处理不相交集合的合并问题。经典应用有:–连通子图–最小生成树Kruskal算法–最近公共祖先。
2022-12-24 11:00:45 526
原创 分治法算法
①算法定义分治是广为人知的算法思想。当我们遇到一个难以直接解决的大问题时,自然会想到把它划分成一些规模较小的子问题,各个击破,“分而治之(Divide and Conquer)” 分治算法的具体操作是把原问题分成 k 个较小规模的子问题,对这 k 个子问题分别求解。如果子问题不够小,那么把每个子问题再划分为规模更小的子问题。这样一直分解下去,直到问题足够小,很容易求出这些小问题的解为止。②算法特征分治法的题目,需要符合子问题的规模大致相同。
2022-12-22 11:48:32 1249
原创 离散化算法
离散化就是用数字得相对值替代他们得绝对值。离散化是一种数据处理的技巧。它把分布广而稀疏的数据转换为密集分布,从而能够让算法更快速、更省空间地处理。
2022-12-21 10:40:25 534
原创 倍增法与ST算法
倍增法和二分法是“相反”的算法,效率都很高。二分法是每次缩小一半,从而以O(log2n)的速度极快地缩小定位到解;倍增法是每次扩大一倍,从而以O(2的n次方)的速度极快的扩展到极大的空间。
2022-12-21 09:10:47 484 2
原创 高效技巧-打表法
打表是一种典型的用空间换时间的技巧一般指将所有可能需要用到的结果事先计算出来,这样后面需要用到时就可以直接查表获得。打表常见的用法有如下几种:①在程序中一次性计算出所有需要用到的结果,之后的查询直接取这些结果这个是最常用到的用法,例如在一个需要查询大量 Fibonacci数 Fn)的问题中,显然每次从头开始计算是非常耗时的,对Q 次查询会产生 OnQ)的时间复杂度,而如果进行预处理,即把所有 Fibonacci数预先计算并存。
2022-12-19 13:02:34 2574
原创 前缀和与差分算法
定义:前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和一个长度为n的数组a[0] - a[n-1],他的前缀和sum[i]等于a[0] - a[i]的和利用递推可以在O(n)时间内球的所有前缀和:算法分类前缀和的一个应用是差分,差分是前缀和的逆运算定义:首先给定一个原数组a:a[1], a[2], a[3],,,,,, a[n];然后我们构造一个数组b : b[1], b[2], b[3],,,,,, b[i];使得。
2022-12-19 12:39:57 686
原创 GCD和LCM算法
a 能整除b,记为 a|b。其中,a 和 b为整数,且a不等于0, b是a 的倍数,a 是b的约数(因子)。如:13|182,一5|35,-3|36;6 的因子是士1、2、土3、土6。性质1)若a,b,c为整数,且alb、blc,则alc;2)若a、b、m,n为整数,且cla、clb,则cl(ma+nb);3)定理:带余除法。如果a和b为整数且b>0,则存在唯一的整数 q、r,使a=bq+r,0
2022-12-18 22:03:05 2164
原创 三分查找算法
三分法求单峰(或单谷)的极值是二分法的简单扩展单峰函数和单谷函数如下图所示,函数fx再区间【L,R】内只有一个极值v,再极值点两边函数是单调变化的。以单峰函数为例,在v的左边是严格单调递增的,在右边是严格单调递减的。下面的讲解都以求单峰极值为例:如何求单峰函数最大值的近似值?虽然不能直接用二分法,但是只要稍微变形一下就可以了在【L,R】内任取两个点:mid1和mid2,把函数分为3段,有以下情况:1)若f(mid1)
2022-12-18 10:23:13 2022
原创 双指针算法(尺取法)
双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多 个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的 区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是 排好序的。定义快慢指针快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组慢指针:指向更新 新数组下标的位置通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
2022-12-17 12:19:54 1085
原创 二分查找算法
二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取 一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n) 的数组,二分查找的时间复 杂度为 O(log n)。举例来说,给定一个排好序的数组 {3,4,5,6,7},我们希望查找 4 在不在这个数组内。第一次 折半时考虑中位数 5,因为 5 大于 4, 所以如果 4 存在于这个数组,那么其必定存在于 5 左边这一 半。于是我们的查找区间变成了 {3,4,5}。
2022-12-16 13:26:31 5864
原创 C语言知识点复习(计算机能力挑战赛)
2)实型常量:①十进制小数形式②指数形式,例如13.34e3,规定以字母e或E代表以十为底的指数,但是e或者E前面必须要有数字,且后面必须为整数;①普通字符:单撇号括起来的一个字符,一般以ASCII存储;//野指针:当在编写代码的时候,若创建的一个指针变量未初始化且直接引用的该指针,那么这时该指针就是一个野指针。2.指针被free或者delete后,指针指向的内存被释放了,指针本身没有被设置为NULL。//不同数据类型的指针在同一编译环境下所占的字节大小相同。但是main()函数里面可以调用main()
2022-12-15 20:55:26 1419 1
原创 回溯算法(五)棋盘问题
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。
2022-12-14 14:20:47 1006
原创 C语言快速排序-qsort函数
qsort函数是C语言编译器函数库自带的快速排序函数。其包含在头文件里面,所以在使用的时候需要加上该头文件。其本身还是快速排序,所以时间复杂度仍然是O(nlogn)
2022-12-14 09:21:32 585
原创 回溯算法(三)子集问题
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
2022-12-14 08:18:51 582
原创 全排列和组合(STL和C语言递归解法)
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
2022-12-13 17:55:44 1142
原创 回溯算法(一)组合问题
①定义:回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。②效率:回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等。
2022-12-13 11:08:58 2111
原创 操作系统 一(引论)
OS作为用户与计算机硬件系统之间的接口 OS作为计算机系统资源的管理者 OS实现了对计算机资源的抽象1.运行过程: 首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业;当该作业处理完成时,又把运行控制权交还给监督程序,再有监督程序吧磁带上的第二个作业调入内存。计算机系统就这样自动的,一个作业紧接着一个作业进行处理,直至磁带上的所有作业全部完成。2.特点: 自动:作业自动运行,无需干预 批量:磁带上的各个
2022-12-07 00:21:25 438
原创 快速幂||取余运算
快速幂算法能帮我们算出指数非常大的幂,传统的求幂算法之所以时间复杂度非常高(为O(指数n)),就是因为当指数n非常大的时候,需要执行的循环操作次数也非常大。就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。
2022-11-14 21:40:51 802
原创 七大排序算法详解(思路+源代码)C语言,数据结构
目录排序分类:1)冒泡排序2)简单选择排序3)直接插入排序4)希尔排序 5)堆排序6)归并排序①递归实现②非递归实现7)快速排序①快速排序算法 ②快速排序优化8)总结1)按主要操作内排序:插入排序,交换排序,选择排序,归并排序外排序:是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。2)按算法复杂度简单算法:冒泡排序,简单选择排序,直接插入排序改进算法:希尔排序,堆排序,归并排序,快速排序
2022-11-12 21:11:11 983
原创 2)Django ORM框架
ORM意思是对象关系映射,Django ORM描述Django数据模型类和数据库之间的映射关系,通俗来说就是让一个类和一个数据表进行对应,这使得ORM在数据库层和业务逻辑层之间起到了桥梁的作用。
2022-11-05 11:16:58 1198
原创 网络爬虫学习(三)-scrapy框架
scrapy框架内容详解以及两个项目详细解析。使用scrapy框架爬取中国大学MOOC网站搜素的课程信息(如python)包括课程名称,开设学习,课程类型,参与人数,课程概述,授课目标,预备知识,并将参与人数大于10000的课程存储到MongoDB中
2022-10-16 15:20:35 983
2021年安徽省大数据现场赛赛题
2022-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人