最近复习了下堆排序的知识, 写下这篇文章和大家交流 。主要内容: 1. 什么是二叉堆 2. 二叉堆的表示方法 3. 二叉堆节点间的位置关系 4. 堆有序化的基本算法:上浮和下沉 5. 二叉堆的基本操作:插入元素和删除最大元素 6. 堆排序 ...
分类:
编程语言 时间:
2017-11-25 13:02:08
阅读次数:
250
欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a ...
分类:
编程语言 时间:
2017-11-19 19:46:24
阅读次数:
202
阿福最近对回文串产生了非常浓厚的兴趣。 如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串。例如,“abcaacba”是一个回文串,“abcaaba”则不是一个回文串。 阿福现在强迫症发作,看到什么字符串都想要把它变成回文的。阿福可以通过切割字符串,使得切割完之后得到的子 ...
分类:
编程语言 时间:
2017-11-18 11:26:14
阅读次数:
220
一个商人穿过一个 N*N 的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。 这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多 ...
分类:
编程语言 时间:
2017-11-17 22:37:26
阅读次数:
245
在一个递归公共表表达式里,递归表用CTE表名命名。在上面的递归公共表表达式示意图中,递归表必须且只能出现在递归查询的FROM子句里,不能出现在initial-select或者the recursive-select,包括subqueries的任何地方。初始查询可以是一个联合查询,但是它不能包含ORD ...
分类:
数据库 时间:
2017-11-01 12:05:05
阅读次数:
264
HTTPS协议的主要功能基本都依赖于TLS/SSL协议,本节分析TLS/SSL协议工作原理。 TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。 散列函 ...
分类:
Web程序 时间:
2017-10-28 21:05:04
阅读次数:
259
这里给出的只是一些常见的机器学习方法。了解每个方法的思想,数据可以前往UCI数据库(http://archive.ics.uci.edu/ml/index.php)下载。 监督学习: 通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个 ...
分类:
数据库 时间:
2017-10-22 21:11:41
阅读次数:
258
扩展欧几里德算法 基本算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。 证明:设 a>b。 1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0; 2,ab!=0 时 设 ax1+by1=... ...
分类:
编程语言 时间:
2017-10-11 21:47:49
阅读次数:
162
从开学到现在,java的学习已经过去一个多月了,因为老师的教学节奏一直都是比较快的,而之前学的python和c语言还尚且不是十分熟练,而其中有很多基本算法和函数是很多语言都要用到的,并且平时也经常会用到,所以利用国庆时间用java语言重新写了一遍。如果有需要的可以找我拷贝。 ...
分类:
编程语言 时间:
2017-10-08 19:37:50
阅读次数:
109
冒泡排序: public class BubbleSort { public static void main(String [] args) { int [] array={1,2,3,5,6,4}; sort(array); } public static void sort(int [] ar ...
分类:
编程语言 时间:
2017-10-08 16:55:41
阅读次数:
192