素性测试是数论题中比较常用的一个技巧。它可以很基础,也可以很高级( 哲学 )。这次主要要介绍一下有关素数判断的 奇技淫巧 素数的判断主要分为两种: 范围筛选型&&单个判断型 我们先从范围筛选型这种常用的开始讲起,这里采用模板题 "Luogu P3383 【模板】线性筛素数" 来进行测试 1.埃氏筛 ...
分类:
编程语言 时间:
2018-05-29 21:10:52
阅读次数:
225
注:本文所指归并排序指 二路归并排序。 归并排序是平均情况、最坏情况、最好情况时间复杂度都为O(Nlog2N)的稳定的排序算法。最近梳理了下归并排序的递归、非递归、以及自然归并排序算法。 归并排序的基础:将两个有序数组合并为一个有序数组,需要O(n)的辅助空间。 图片来自:https://www.c ...
分类:
编程语言 时间:
2018-05-29 01:48:27
阅读次数:
218
目录 1、引出问题 2、结论 3、分析过程 4、总结 目录 1、引出问题 2、结论 3、分析过程 4、总结 回到顶部 1、引出问题 在前面讲解 HashMap 的源码实现时,有如下几点: ①、初始容量为 1<<4,也就是24 = 16 ②、负载因子是0.75,当存入HashMap的元素占比超过整个容 ...
分类:
编程语言 时间:
2018-05-24 23:04:37
阅读次数:
314
常见排序算法总结与实现 本文使用Java实现这几种排序。以下是对排序算法总体的介绍。 冒泡排序 时间复杂度:O(n^2),最优时间复杂度:O(n),平均时间复杂度:O(n^2) 插入排序 时间复杂度:O(n^2),最优时间复杂度:O(n),平均时间复杂度:O(n^2) 下面展示了三种插入排序的实现, ...
分类:
编程语言 时间:
2018-05-18 18:12:35
阅读次数:
166
第一题,典型的隔板问题, 但是我忘记隔板问题怎么打,一开始在花了1小时,还是没想出来,果断弃疗, 最后的40分钟,我打完了第二题,接着又用了20分钟推敲出一种极其猥琐的式子来代替,可惜预处理的阶乘忘记mod,只拿了40分。 好伤心,60分就这样飞走了(;′⌒`) 第二题很像多米诺骨牌,于是就找规律, ...
分类:
其他好文 时间:
2018-05-17 16:43:33
阅读次数:
143
整理了一下JVM垃圾回收的分代回收算法,旨在能够以后能够快速熟悉这些算法,而不用去查找大量资料(可以认为是偷懒),也是为了分纤箱一下自己的一些理解,有不足或错误之处,希望大家指正,共同进步!1.分代回收算法分代回收算法是标记-复制算法和标记-整理算法(标记-清楚)的集合,朱亚平是对新生代和老年代分别 ...
分类:
编程语言 时间:
2018-05-12 10:24:12
阅读次数:
133
最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,经本人调试无误后才发出,如有错误,请各位前辈指
分类:
编程语言 时间:
2018-04-26 12:21:50
阅读次数:
142
【splay】 〖模板代码〗 1 void rotate(int x,int& k) 2 { 3 int y=fa[x],z=fa[y],l,r; 4 l=(tr[y][1]==x);r=l^1; 5 if(y==k)k=x; 6 else tr[z][tr[z][1]==y]=x; 7 fa[x] ...
分类:
编程语言 时间:
2018-04-20 20:41:44
阅读次数:
165
【最近公共祖先】 〖模板代码〗 [倍增算法] 1 void dfs(int k) 2 { 3 for(int i=1;(1<<i)<=deep[k];i++) 4 x[k][i]=x[x[k][i-1]][i-1]; 5 for(int i=head[k];i;i=e[i].next) 6 { 7 ...
分类:
编程语言 时间:
2018-04-20 00:04:04
阅读次数:
224
【快速傅里叶变换】 〖相关资料〗 《虚数的图解》 《虚数的意义》 《FFT学习笔记》 《从多项式乘法到快速傅里叶变换》 《Fast Fourier Transform》 《【快速傅里叶变换】【FFT】【WikiOI】【P3132】【高精度练习之超大整数乘法】》 〖模板代码〗 [FFT] 1 cons ...
分类:
编程语言 时间:
2018-04-20 00:01:57
阅读次数:
200