随笔分类 -  Algorithm

摘要:数据结构与算法系列 目录 阅读全文
posted @ 2015-10-23 10:17 kira2will 阅读(129) 评论(0) 推荐(0)
摘要:数组循环移位要求:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。不合题意的解法如下:我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234→4abcd123→34abcd12→234abcd1→1234abcd。版本... 阅读全文
posted @ 2014-12-25 22:34 kira2will 阅读(206) 评论(0) 推荐(0)
摘要:The Knuth-Morris-Pratt Algorithm in my own wordsFor the past few days, I’ve been reading various explanations ofthe Knuth-Morris-Pratt string searchin... 阅读全文
posted @ 2014-11-20 20:49 kira2will 阅读(200) 评论(0) 推荐(0)
摘要:1.小兔子繁殖问题 (有该问题的详细来由介绍)2.台阶问题题目:一个人上台阶可以一次上一个或者两个,问这个人上n层的台阶,一共有多少种走法。递归的思路设计模型:i(台阶阶数) n(走法种数) 组合情况1 1 ... 阅读全文
posted @ 2014-10-15 10:48 kira2will 阅读(191) 评论(0) 推荐(0)
摘要:转自:算法的空间复杂度类似于时间复杂度的讨论,一个算法的空间复杂度(Space Complexity)S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。渐近空间复杂度也常常简称为空间复杂度。空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。... 阅读全文
posted @ 2014-10-12 00:42 kira2will 阅读(368) 评论(0) 推荐(0)
摘要:转自:算法的最坏情况与平均情况如果一个程序运行多次,则有时候它会快点儿,有时候它会慢点儿。算法也一样,在输入1的情况下和输入2的情况下,其执行效率不一定一样。即算法会随着输入数据的不同而有秩序效率的不同,有时候会快点儿,有时候会慢点儿。例如,对一个已经排好序的序列进行排序就要相对容易一些。另外,输入... 阅读全文
posted @ 2014-10-12 00:39 kira2will 阅读(2427) 评论(0) 推荐(0)
摘要:笔试题:不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数。函数接口声明如下:int strlen(const char *p);http://soft.chinabyte.com/database/23/12414523.shtml 阅读全文
posted @ 2014-10-09 14:12 kira2will 阅读(178) 评论(0) 推荐(0)
摘要:问题描述:已知有序数组a[N], 从中间某个位置k(k未知,k=-1表示整个数组有序)分开,然后将前后两部分互换,得到新的数组,在该新数组的查找元素x。如:a[]={1,2,5,7,9,10,15},从k=4分开,得到新数组a={9,10,15, 1,2,5,7}。 1 #include "stda... 阅读全文
posted @ 2014-05-14 22:31 kira2will 阅读(429) 评论(0) 推荐(0)
摘要:请设计一个函数,不许用到字符串函数,用数学运算,将double类型数据转换,例如123.456转换成654.321int _tmain(int argc, _TCHAR* argv[]){ const double number = 123.456; double ten = 1; double ten2 = 10; double resultValue = 0.0; for(int i=0;i<3;++i) { double temp = number; double a = (int(temp/ten)%10)/ten2; resultValue += a; double... 阅读全文
posted @ 2014-01-11 00:17 kira2will 阅读(205) 评论(0) 推荐(0)
摘要:一.问题描述 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和. 例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4]. 如果该序列的所有元素都是负整数时定义其最大子段和为0。二. 问题分析 1、最大子段和问题的简单算法: 2、最大子段和问题的分治法: 求子区间及最大和,从结构上是非常适合分治法的,因为所有子区间[start, end]只可能有以下三种可能性: 在[1, n/2]这个区域内 在[n/2+1, n]这个区域内 起点位于[1,n/2... 阅读全文
posted @ 2013-12-08 20:04 kira2will 阅读(356) 评论(0) 推荐(0)