自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 求最小函数依赖集

求最小函数依赖集

2023-01-15 11:23:42 233 1

转载 浅析springboot的@Cacheable加入缓存@CacheEvict清除缓存及spEL表达式编写key

一、@Cacheable的作用1、缓存使用步骤:@Cacheable这个注解,用它就是为了使用缓存的。所以我们可以先说一下缓存的使用步骤:1、开启基于注解的缓存,使用 @EnableCaching 标识在 SpringBoot 的主启动类上。2、标注缓存注解即可注:这里使用 @Cacheable 注解就可以将运行结果缓存,以后查询相同的数据,直接从缓存中取,不需要调用方法2、@Cacheable作用:把方法的返回值添加到Ehcache缓存中。3、常用属性介绍:(1)cacheNames

2022-04-18 20:59:39 8303 2

原创 Error resolving template [XXX/XXX], template might not exist or might not be accessible by a...

Error resolving template [XXX/XXX], template might not exist or might not be accessible by a...

2022-04-12 22:21:38 1797

原创 QQ互联原理

QQ互联基于OAuth协议,是一种实现第三方网站和腾讯各平台社交化互动的技术。

2022-02-21 12:29:52 3427

原创 基数排序(Java实现)

基数排序是一种高级排序算法。基数排序需要进行d趟分配和收集,一趟分配需要O(n),一趟收集需要O( r ),所以基数排序的时间复杂度为O(d(n + r))

2022-01-13 12:22:34 492

原创 快速排序(Java实现 )

快速排序是一种高级排序算法,是内部排序中性能最好的排序算法。

2022-01-13 09:12:35 4488 4

原创 单链表(Java实现)

单链表的Java实现

2022-01-12 10:08:02 123

原创 归并排序(Java实现)

归并排序是一种高级排序算法,适用于外部排序,时间复杂度为O(nlogn),但是由于必须引入辅助数组,空间复杂度为O(n)

2022-01-11 14:36:29 427

原创 堆排序代码详解(Java实现)

堆排序是一种高级排序算法,时间复杂度为O(nlogn),空间复杂度仅为O(1),对于海量数据使用堆排序是相当高效的。

2022-01-11 10:55:19 1621

原创 一个迪米特法则搞懂七大设计法则的共性

迪米特法则的学术定义:一个软件实体应当尽可能少地与其他实体发生相互作用不要和“陌生人”说话、只与你的直接朋友通信定义很拗口,但是核心思想很简单:两个对象之间尽量减少直接交互,通过第三方来间接交互,从而降低对象间的耦合。第三方一般是抽象类或接口。读到这里不少人应该豁然开朗了,因为按照传统顺序来讲,迪米特法则应该是你学到的第六个或者第七个法则,前面的法则你已经反复看到这几个字眼:抽象类,接口,耦合这就是七大设计法则乃至23种设计模式的共性(毕竟设计模式是基于设计法则的):通过面向接口或抽象类编

2022-01-10 15:56:09 228

原创 希尔排序在三种著名增量下的时间性能比较

希尔排序是什么?希尔增量最坏时间复杂度:O(n^2)教材上都是以希尔增量为例子 => [N/2, (N/2)/2, …]void shellSort1(int[] arr){ for (int gap = arr.length / 2; gap > 0; gap /= 2){ //排序趟数 for (int i = gap; i < 2 * gap; i++) { //每趟排序组数 //每组使用直接插入排序

2022-01-09 17:23:07 708

原创 希尔排序(Java实现)

这里只提供代码,建议彻底弄懂直接插入排序和希尔排序思想后再来看代码。某园的一篇希尔排序图解很清晰。 //希尔排序(希尔增量)(移动式)(避免频繁交换) void shellSort(int[] arr){ for (int gap = arr.length / 2; gap > 0; gap /= 2){ //排序趟数 for (int i = gap; i < 2 * gap; i++) { //每趟排序组数

2022-01-09 12:19:46 559

原创 锁屏界面灰色浏览图片不响应

建议您先尝试以下方案检查您的系统组件:在命令提示符(管理员)下键入以下命令:sfc /SCANNOW 及Dism /Online /Cleanup-Image /ScanHealth 这条命令将扫描全部系统文件并和官方系统文件对比,扫描计算机中的不一致情况。Dism /Online /Cleanup-Image /CheckHealth 这条命令必须在前一条命令执行完以后,发现系统文件有损坏时使用。DISM /Online /Cleanup-image /RestoreHealt

2022-01-09 08:53:40 545

原创 ArrayList中添加ArrayList

List<List<Integer>> bigList = new ArrayList<>(); List<Integer> list = new ArrayList<>(); list.add(1); bigList.add(list); list.clear(); list.add(2); bigList.add(list); ...

2022-01-08 12:12:05 2077 1

原创 Spark RDD 编程指导(Python API)

通过并行集合创建RDDparallelize和reducedata = [1, 2, 3, 4, 5]distData1 = sc.parallelize(data) # 此时distData1就是一个RDDdistData1.reduce(lambda a, b: a + b) # 将所有元素相加# reduce(f)是对RDD中的元素通过函数f进行两两操作,产生的值作为新的元素再和RDD中下一个元素一起传递给函数f进行两两操作,循环往复直到所有元素完成操作,返回最后的值15glom和c

2021-05-28 17:25:16 546

原创 pyspark预测网页分类

读取数据from pyspark.context import SparkContext from pyspark.sql.session import SparkSession# 读取文本文件,创建为DataFrame 结构row_df=spark.read.format("csv").option("header","true").option("delimiter","\t").load("train.tsv")print(row_df.count()) # 查看数据条数row_df.pr

2021-05-27 10:59:11 690

原创 win10锁屏界面设置幻灯片放映时不能预览到自定义文件夹里的图片

就是当你添加了幻灯片放映扫描的文件夹后,自动预览的仍然是之前的锁屏壁纸(假如删去系统自带的所有锁屏壁纸,预览则变成“无壁纸”(灰色),反正预览不到自定义文件夹里),导致锁屏界面的第一张图还是之前的锁屏壁纸,过一会儿才会变化为自定义文件夹里的壁纸,开始幻灯片放映。这里没有如何解决幻灯片预览的办法,但是有一个很巧妙的替代法:先将“背景”切换回为“图片”,然后浏览图片为自定义文件夹里的第一张图片(或者是任意一张),这样就能预览到该图片。再将“背景”切换回“幻灯片放映”即可这样你再也不会看到以前的锁屏壁

2021-05-25 14:59:38 4319

原创 Spark通过文件数据源创建RDD时对于分区的理解

minPartitions参数用来控制每个文件的分区数,一个文件可能会有多个块,默认一个块对应一个分区,Spark 2.3.0是这么说的。注意,分区数不能少于块,也就是分区数如果设置多了,会出现很多冗余的空闲分区。默认minPartitions=2我们知道Spark如果从hdfs中读取数据,一个块大小默认为128MB,那么有如下结论:如果文件大小不超过128MB,那么无论minPartitions设置为多少,该文件只会有一个分区。如果文件大小为400MB,即大于3倍块大小,那么如果设置min

2021-05-23 17:47:31 493 1

原创 win10系统下jupyter notebook集成pyspark的关键点

我前前后后花了两天时间才终于把环境调正确,以这篇文章叙述一下配置时的关键点。pyspark-shell 有着所有交互式命令行的共同缺点,关掉后,已运行的代码也就随着一起销毁了,不能保存。说到兼具交互式命令行特点、代码保存功能、代码编译运行功能的软件,我们很自然就想到了jupyter notebook。事实上二代目jupyter lab也已经投入使用,但是我没有用它来集成,因为这是我遇到的第一个坑,目前jupyter lab只有高版本的Python才能下载(比如Python 3.8),而Spark截止到目前

2021-05-21 13:06:01 489 3

原创 Spark运行时自定义derby.log和metastore_db的生成路径

如果不手动设置一下,那么每次运行Spark时都会在当前所在目录生成derby.log和metastore_db文件,不方便集中管理。这种随意性与冗余对于程序员来说是不能接受的,所以必须自定义设置,使之统一生成在唯一路径下。在spark/conf目录下,将spark-defaults.conf.template复制为spark-defaults.conf,在该配置文件最后一行写入spark.driver.extraJavaOptions -Dderby.system.home=/tmp/derby(tmp/

2021-05-19 13:57:40 1357

原创 Spark大数据技术与应用

第一章1.Spark是什么概念Spark是一个大规模数据处理的统一分析引擎。特点迅速、通用、易用、支持多种资源管理器迅速Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度。通用可以用Spark进行sql查询、流式计算、机器学习、图计算。易用支持多种编程语言API,包括Java、Scala、Python、R支持多种支援管理器Spark可以使用单机集群模式来运行,也可以在Hadoop YARN、Apache Mesos、Kubernates上运行,或者在“云”里运行。S

2021-04-24 18:22:37 4808 5

原创 web.py(0.61)源码剖析

application.py__all__ = [ "application", "auto_application", "subdir_application", "subdomain_application", "loadhook", "unloadhook", "autodelegate",]__all__是一个字符串列表,里面包含要对外暴露的接口。即可以利用模块名直接调用且只能调用__all__中包含的类或者方法。application

2021-04-03 19:07:57 194

原创 Django 1.11 handbook

settings:AUTH_USER_MODEL默认值:django.contrib.auth.models.User何时需要设置:默认的User模型可能并不适合一些项目的身份验证需求,需要自定义。例如,在一些网站上使用邮件地址代替用户名来作为你的标识令牌更有意义。#settings.pyAUTH_USER_MODEL = 'myapp.MyUser'#models.pyfrom django.contrib.auth.models import AbstractUserclass My

2021-04-03 19:07:10 227

原创 Django3 通用视图

ListView属性paginate_by一个整数,指定每页应显示多少个对象。page_kwarg一个字符串,指定用于page参数的名称。默认为page。方法get_context_data(** kwargs)返回用于显示对象列表的上下文数据。get_queryset()获取此视图的项目列表。这必须是可迭代的,并且可能是查询集(将在其中启用特定于查询集的行为)。def get_context_data(self, **kwargs): context = super(

2021-04-03 19:06:43 182

原创 唐迟长难句

文章分析这里的spoiled修饰的只能是the decline in efficiency(虽然前面还有名词),尽管定语从句没有就近原则,但是切记,不能跨越谓语动词。当定语从句过长时,翻译时可以一分为二,顺着往下翻译,例如上面:…阻止了效率下降,而效率下降会破坏…initiative词典里的意思都是主动性,但是这里应翻译成个人行为,由此唐叔总结:因为相邻三年生词重复率非常高这里的that不引导任何从句,它就是翻译成“那个”, 代表上文提到的“对工人的了解”...

2021-04-02 17:12:15 753

原创 栈应用之行编辑程序(C语言)

void LineEdit(){ Stack S; InitStack(S); char ch; printf("请输入...\n"); fflush(stdout); ch = getchar();//获取输入字符 while (ch != EOF){ while (ch != EOF && ch != '\n'){ ELEMTYPE e; switch (ch){ case '#': if (StackEmpty(S)){//栈空时不能退格

2021-03-31 20:21:55 1026

原创 栈应用之汉诺塔问题(C语言)

描述在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:每次只能移动一个盘子;盘子只能从柱子顶端滑出移到下一根柱子;盘子只能叠在比它大的盘子上。核心思想栈 + 分冶(=>递归)代码//A中只剩一个元素时,从A移到Cvoid AtoC(Stack &A, Stack &C, ELEMTYPE &e){ Po

2021-03-30 21:49:43 1427

原创 栈应用之括号匹配(C语言)

条件给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。代码void bracketmatch(){ char *str = (char*)malloc(sizeof(char)*10); printf("请输入要匹配的括号组:"); fflush(stdout);//清空输出缓冲区(否则我上面打印不出来) scanf("%s", str); int le

2021-03-30 20:17:42 533

原创 单链表应用之一元多项式相加(C语言)

实际上一元多项式的数据结构仍然是一条单链表,不过是此时的每个结点代表多项式的每一项,结点的数据域被细分成了系数域和指数域。而多项式相加的操作就相当于有序单链表的归并操作。代码:#include <stdio.h>#include <stdlib.h>typedef struct{//项的类型(数据域) float coef;//系数 int expn;//指数} Data;typedef struct node {//链表(一元多项式)类型 Data data;

2021-03-29 20:15:27 2458 1

原创 尽量不要在C语言scanf中使用换行符!!!

比如我有这样一段代码:for (int i = 1; i <= 3; i++){ scanf("%f,%d\n", &d.coef, &d.expn);加了换行符后,并不是输入3次,而是4次!第四次可以随便输入一个符号(非空格、制表符、回车),它并不会被scanf读进来的,而是留在输入流里。而我们常见的是不加换行符的情况,这样确实只需要输入3次,可以都在一排输入,也可以换行输入:输入完之前的任何一次按下空格键、Tab键、回车键,都不会被scanf读入,只要记得输入完

2021-03-28 21:11:35 3176

原创 通过尾指针合并俩循环链表(C语言)

#include <stdio.h>#include <stdlib.h>#include <ctime>typedef struct node{ int data; struct node *next, *rear;//直接给结点开辟尾指针域,但是只有头结点真正使用了}node, *CircularList;int random(int min, int max);//生成随机数void InitList(CircularList &C);/

2021-03-28 19:36:01 728

转载 英语兔语音技巧

加音同化逆行同化顺行同化异化------------------------更新中-----------------------------

2021-03-28 16:40:41 294

原创 通过双向链表找前驱的方法计算一定范围的随机整数出现的比例,探索C语言rand()的性能

代码#define MAXSIZE 1000int random(int min, int max){ return rand() % (max - min + 1) + min;}void randNumPercent(LinkedList L){ srand((unsigned int)time(NULL)); int *a = (int*)malloc(sizeof(int)*MAXSIZE); for (int j = 0; j < MAXSIZE; j++){ int

2021-03-24 14:19:31 147

原创 反转单链表(C语言实现)

必要性:单链表是一种数据结构,反转单链表问题经常会出现在面试当中,所以我们一定要掌握!代码:typedef struct node { int data; int length; struct node* next;} node, *LinkList;void reverse(LinkList &L){//L是头节点 if(L->next == NULL) printf("链表为空,不能反转!\n"); else if (L->next->next == N

2021-03-23 21:37:29 636

原创 解决kafka中使用本机java代码作为生产者发送消息但是在虚拟机中消费者接收不到信息的问题

在此之前我已经试过了网上的一些办法,很多都说把advertised.listeners和listeners进行解注,但是没用。

2021-01-13 23:23:18 1008 2

转载 信噪比s/n(单位分贝) , 为什么还要取对数10lg (s/n)?

呵呵,这个问题很简单,因为信噪比有两种表示形式:数字形式表示。也就是一般的数值,比如噪声功率权为1,信号功率为100,则信噪比为100/1=100。以分贝形式表示,同样还是上面这些数字,则以分贝形式表示的信噪比为:10lg(s/n)=10lg(100)=20 dB两者的区别在于,前者结果(一个数值)是没有单位的,后者结果必须后面加dB,代表分贝。两者数值等价。采用分贝表示的原因是,很多时候,信号要比噪声强的多,比如信号比噪声强十亿倍,如果用数值表示的话,1后面有9个0,很容易丢失一个0。如果用分

2020-11-06 13:33:15 10593 5

转载 字和字节的区别

字节不是天生就是8个位,在历史上1~48位都用过。现代计算机最终选择了8个位一个字节,一方面原因是8是2的幂;但是16、4也都是2的幂,为何没有被选呢?更重要的原因是,这是商业战争自然选择的结果。同样的道理,字的长度,也曾经各式各样,但是目前主流的就是32/64。那字节和字的本质是什么?字节是寻址的最小单位。内存中两个紧挨着的字节,它们的内存地址差1。但是一个字节内的位,就没有地址的概念。你当然也可以定义一种计算机,每个位对应一个内存地址,但是在现代太另类了,估计没有人为你的计算机编程。字是计算机一

2020-11-01 15:51:29 6591

转载 nltk_data的路径问题

点击链接查看第二种方法,github下载的nltk_data中只需要packages里面的文件,所以要把它拷贝到父目录,并将其它不需要的文件夹删掉,另外每个模块里面的压缩文件都要解压才能使用。

2020-09-05 10:59:12 1431

原创 Django表单字段参数required和表单验证

Django表单字段如:forms.CharField, forms.EmailField等,会默认传入参数required=True,也就是默认表单字段不能为空,如果对html5新特性不了解,会以为这仅仅是控制相应表单不能为空。然后会碰到一个很奇怪的现象,我明明没有在模板中导入任何JavaScript,但是当我未在此字段填入任何内容而提交表单时,相应表单字段框会弹出一个“精致”的响应框”此字段不能为空“。实际上这就是h5新特性required导致的,<input>标签会自动带有require

2020-08-24 11:22:57 2469

转载 Django-mdeditor文本编辑插件

中文文档

2020-08-14 20:32:15 324

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除