文章分类 - 算法
摘要:二分查找的基本思想是将n个元素分成大致相等的两部分,去a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x. 时间复杂度无非就是while循环的次数! 总共有n个元素, 渐渐跟下
阅读全文
摘要:本节概要 高精度运算涉及高精度加法,高精度减法,高精度乘法,高精度除低精度,高精度除高精度 5类。以下的讲解中,不考虑负数的情况;除法运算中,我们规定除数小于被除数;规定高精度数字的位数不超过200。 本节内容 1. 高精度数字的输入和存储方法 输入 单个高精度数字可能长达200位,可以通过两种方式
阅读全文
摘要:关键是要找出一个判断一个正整数n是否为素数的方法... 傻瓜解法--n,n/2 这是理所当然的想法,按照素数的定义,除了1和它本身没有其他的因数,就是素数。 这种解法的缺点就是红色标注那里,i<n,或者有的是i<n....这种循环规模n稍微大点,运行时间不谈了,都是泪... 普通解法--sqrt(n
阅读全文
摘要:线性筛 线性筛在数论中起着至关重要的作用,可以大大降低求解一些问题的时间复杂度,使用线性筛有个前提(除了素数筛)所求函数必须是数论上定义的积性函数,即对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b),在数论上就称它为积性函数,若a,b不互质也满足的话
阅读全文

浙公网安备 33010602011771号