51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#算法的乐趣
JVM GC算法 CMS 详解(转)
CMS,全称ConcurrentLowPauseCollector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生命周期的对象的应用。CMS是用于对t...
代码星球
·
2020-04-06
JVM
GC
算法
CMS
详解
遗传算法实现自动组卷、随机抽题 (转)
using System;using System.Windows.Forms;using System.IO;namespace GA{ public partial class Form1 ...
代码星球
·
2020-04-06
遗传
算法
实现
自动
组卷
算法8-排序-基数排序
基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 不妨通过一个具体的实例来展示一下,基数排序是如何进行的。 设有一个初始序列为:...
代码星球
·
2020-04-06
算法
8-排序
基数
排序
算法7-排序-归并排序
将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个长度为4的有序序列;如此反复进行下去,最后得到一个长度为n的有序序列。综上可知:归并排序其实要做两件事:(1)“分解”—&mdash...
代码星球
·
2020-04-06
算法
7-排序
归并
排序
算法6-排序-快速排序
(1)基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。(2)实例:(3)java实现publicclassquickSort{inta[]={49...
代码星球
·
2020-04-06
算法
6-排序
快速
排序
算法5-排序-冒泡排序
(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。(2)实例:3)用java实现publicclassbubbleSort{publicbubbleSort...
代码星球
·
2020-04-06
算法
5-排序
冒泡
排序
算法4-排序-堆排序
在介绍堆排序之前,首先需要说明一下,堆是个什么玩意儿。堆是一棵顺序存储的完全二叉树。其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。举例来说,对于n个元素的序列{R0, R1,..., Rn}当且仅当满足下列关系...
代码星球
·
2020-04-06
算法
4-排序
-堆
排序
算法3-排序-简单选择排序
基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。举个...
代码星球
·
2020-04-06
算法
3-排序
简单
选择
排序
算法笔记2-排序-希尔排序(最小增量排序)
基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。publicclassshellSort{publics...
代码星球
·
2020-04-06
排序
算法
笔记
2-排序
希尔
算法笔记1-排序-插入排序
插入排序的工作方式就像排序一手扑克牌。开始时,我们的左手为空,然后,我们每次从桌上拿走一张牌并将它插入到左手中正确的位置。为了找到正确的位置,我们总是从右到左将它与左手中的每张牌进行比较。这样,左手中的牌始终是排好序的,直到最后一张。 插入排序的时间复杂度是O(n^2),因此,对于小规模问题,能有效解决,但是...
代码星球
·
2020-04-06
算法
笔记
1-排序
插入
排序
Hash算法初见
hash算法(hashmap实现原理) Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散...
代码星球
·
2020-04-06
Hash
算法
初见
【转】编写高质量代码改善C#程序的157个建议——建议154:不要过度设计,在敏捷中体会重构的乐趣
建议154:不要过度设计,在敏捷中体会重构的乐趣有时候,我们不得不随时更改软件的设计:如果项目是针对某个大型机构的,不同级别的软件使用者,会提出不同的需求,或者随着关键岗位人员的更替,需求也会随个人意志有所变更。如果竞争对手增加了新需求,我们也不得不为正在研发的新产品调整设计方案。刚开始的架构太糟糕了,这可...
代码星球
·
2020-04-06
建议
编写
高质量
代码
改善
【转】编写高质量代码改善C#程序的157个建议——建议119:不要使用自己的加密算法
建议119:不要使用自己的加密算法很多人认为自己写的加密算法才是安全的,因为该算法只有“自己知道”。很遗憾,这是大错特错。首先,我们不是秘密学专家,如果我们随随便便写个算法就称得上是加密算法的话,那么世界上就不会存在“密码学”这个专门的学科了。其次,应当记住的...
代码星球
·
2020-04-06
建议
编写
高质量
代码
改善
【转】编写高质量代码改善C#程序的157个建议——建议116:避免用非对称算法加密文件
建议116:避免用非对称算法加密文件MD5值或者说HASH值是一种不可逆的算法。如果需要从密文还原成明文,那么就需要对称和非对称这两类可逆算法了。对称算法示意图:在对称算法中,首先需要发送方和接收方协定一个密钥K。K可以是一个密钥对,但必须是加密密钥和解密密钥之间能相互推算出来的。在最简单也是最常用的对称算...
代码星球
·
2020-04-06
建议
编写
高质量
代码
改善
菲波那切数列算法
问题:有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知,一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起,每月生一对小兔子,加入一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖多少对?(兔子的规律为数列1,1,2,3,5,8,13,21)----菲波那切数...
代码星球
·
2020-04-06
菲波
那切
数列
算法
首页
上一页
...
93
94
95
96
97
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他