- 博客(8)
- 收藏
- 关注
转载 大素数分解与素数判定
1.Miller-rabin算法:Miller-rabin算法是一个用来快速判断一个正整数是否为素数的算法。根据费马小定理,如果p是素数,则a^(p-1)≡1(mod p)对所有的a∈[1,n-1]成立。所以如果在[1,n-1]中随机取出一个a,发现不满足费马小定理,则证明n必为合数。【但是每次尝试过程中还做了一个优化操作,以提高用少量的a检测出p不是素数的概率。这个优化叫做二次探
2017-03-18 20:28:44 2530
转载 八大排序不完全版
算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容。所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列。排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法。那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来。普通意义上,排序算法可以分为三大类:1 交换类排序法2 插入类排序法3 选择类排序
2017-03-08 20:18:50 650
转载 八大排序
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方
2017-03-08 20:15:46 233
原创 素数的判定
素数判定的演化过程:判定一个数字p是不是质数:拿1 ~p 的所有数字来试除。bool divisibiity_test(int n){ for (int i=2; i if (n % i == 0) return false; // 不是质数 return true; // 是质数}改进b
2017-03-07 19:04:37 294
转载 数据离散化
有些数据本身很大, 自身无法作为数组的下标保存对应的属性。如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理!离散化:当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化。例如9 1 0 5 4 与 5 2 1 4 3 的逆序对个数相同。设有4个数:1234567、123456789、12345678、123456排序
2017-03-05 21:23:53 381
转载 最长上升子数列
1 LIS什么是最长递增子序列呢? 2 问题描述如下: 3 设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=, 4 其中k1akm。求最大的m值。 5 对于这个问题有以下几种解决思路: 6 1、把a1,a2,...,an排序,假设得到a'1,a'2,...,a'n,然后求a的a'的最长公共子串,这样总的时间复杂度为o(nlg(n))+o(n^2)
2017-03-05 21:21:33 406
转载 map的用法
C++ map的基本操作和使用1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N)
2017-03-05 21:20:17 191
转载 快速幂和素数筛
快速幂:long long int text(long long int a,long long int b,long long int c){ long long int ans=1; a=a%c; while(b>0) { if(b%2==1) ans=(ans*a)%c; b/=2;
2017-03-05 19:22:04 230
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人