摘要: 题目 求整数N的开方,精度在0.001 思路 这里给出多种实现方案,读者自取 二分法 若N大于1,则从[1, N]开始,low = 1, high = N, mid = low + (high - low) 》 1开始进行数值逼近 若N小于1,则从[N, 1]开始,low = 0, high = N, mid = low + (high - low) 》 1开始进行数值逼近 ac代码 /** * 创新工厂2014年校招算法题目,求整数N的开方,精度为0.001 */ #include #include #include #define ACCURACY 0... 阅读全文
posted @ 2013-09-25 11:23 来自你520的末班车 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 问题描述 给定一个整数序列(可能有正数,0和负数),求它的一个最大连续子序列乘积。比如给定数组a={3, -4, -5, 6, -2},则最大连续子序列乘积为720,即3*(-4)*(-5)*6=720. 分析 求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0. 假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来表示以a[i]结尾的最大连续子序列的乘积值,用Min[i]表示以a[i]结尾的最小的连续子序列的乘积值,那么状态转移方程为: Max[i]=max{a[i], Max[i-1]*a[i], Min[i-1]... 阅读全文
posted @ 2013-09-25 11:15 来自你520的末班车 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: 希尔排序,是对直接插入排序的改进版本,又称增量缩小排序,实质上是一种分组插入排序。 基本思想是 先取第一个增量step,以该序列内所有下标相差 step 的元素作为一组,如 array[0], array[0 + step], array[0 + step*2].....作为一组,array[1], array[1 + step], array[1 + step*2]....作为一组,然后对这些分组分别进行直接插入排序,然后减小增量,重复进行上面操作,到最后 step = 1,这时序列已基本有序,对数组再次进行直接插入排序,这种情况下的直接插入排序复杂度为 O(n),而且保证了最后的结... 阅读全文
posted @ 2013-09-25 11:13 来自你520的末班车 阅读(232) 评论(0) 推荐(0) 编辑