摘要:递归求1-100之和 /* *求1-100之和 */ function sum(num1, num2) { var num = num1 + num2; if (num2 + 1 > 100) { return num; } else { return sum(num, num2 + 1) } }
阅读全文
摘要:问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为pi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? n个物品中选择部分物品,可知,问题的解空间是子集树。比如物品数目n=3时,其解空间树如下图 思路: 边为1代表选择该物品,边为0代表不选择该物品。回溯搜索
阅读全文
摘要:问题描述: 定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它
阅读全文
摘要:1.概念 快速排序 快速排序,听这个名字就能想到它排序速度比较快方法,是一种分治思想,现在各种语言中自带的排序库很多使用的都是快速排序。快速排序是一种原地排序,只需要一个很小的栈作为辅助空间,空间复杂度为O(log2n),适合在数据集比较大的时候使用。时间复杂度比较复杂,最好的情况是O(n),最差的
阅读全文
摘要:大数相加,是在求职过程中遇到的一个精巧的笔试题目,觉得有意思,在这里记录一下, 大数相加,大概是说,要输入两个很大的数,进行一个加法运算, 由我们要编写一段程序,用较高的运算效率完成运算; 解题思路: 大数位数较多,所以考虑采用逐位相加的思想, (1) 定义两个字符型变量以存储两个大数, (2)字符
阅读全文
摘要:该算法是假设已有序列是有序序列, 从首元素(首元素为单个元素,肯定是有序的...)开始分析,对其他元素的位置进行有序的确定; 排序算法 1 public class InsertionSort { 2 public static void insertionSort(int a[]) { 3 4 i
阅读全文
摘要:该算法是将两个有序序列合并为一个有序序列问题的形式化表示。 首先,序列A[p,q] 和序列A[q+1,r]是有序的,输出A[p,r]是有序的,这是算法的整体流程; 维护三个变量,i,j,k,分别初始化为0,0,p; 定义两个数组,分别是L(L长度为q-p+1),R(R长度为r-q),以存储上述的两个
阅读全文