随笔分类 - 算法
摘要:今天在做一道笔试题时,题目大意就是要求最长公共子串,我当时在编码时打算用一个ArrayList<Character>加一个ArrayList<ArrayList<Character>>进行存储,但是在每次用 ArrayList<ArrayList<Character>>添加后,然后用clear清除A
阅读全文
摘要:Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 ="aabcc",s2 ="dbbca", When s3 ="aadbbcbcac", return
阅读全文
摘要:大数相减 在Java中,还可以通过BigInteger类来解决精度问题。
阅读全文
摘要:1 import java.util.LinkedList; 2 import java.util.List; 3 4 /** 5 * 功能:把一个数组的值存入二叉树中,然后进行3种方式的遍历 6 * 7 * 参考资料0:数据结构(C语言版)严蔚敏 8 * 9 * 参考资料1:http://zhidao.baidu.com/question/8...
阅读全文
摘要:1 public class Test { 2 public static void main(String[] args) { 3 BookTicket bookTicket = new BookTicket(); 4 bookTicket.init(); 5 } 6 7 } 1 import java.util.Scanner; 2 ...
阅读全文
摘要:1 import java.math.BigInteger; 2 3 public class BigInt { 4 BigInteger m1; 5 BigInteger m2; 6 BigInteger m3; 7 8 BigInt(String s1, String s2) { ...
阅读全文
摘要:编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题。面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串,或者检查一个字符串是否是回文(即正反读顺序一致)。查找第一个非重复字符的问题也是在同一个范畴。在给出
阅读全文
摘要:当用线性表作为表的组织形式时,可以有三种查找法。其中以二分查找效率最高。但由于二分查找要求表中 节点按关键字有序,且不能用链表作存储结构,因此,当表的插入或删除操作频繁时,为维护表的有序性, 势必要移动表中很多节点。这时由移动节点引起的额外时间开销,就会抵消二分查找的优点。也就是说, 二分查找只适用
阅读全文
摘要:分块查找(Blocking Search)又称索引顺序查找。它是一种性能介于顺序查找和二分查找之间的查找方法。1、 二分查找表存储结构 二分查找表由"分块有序"的线性表和索引表组成。(1)"分块有序"的线性表 表R[1..n]均分为b块,前b-1块中结点个数为 ,第b块的结点数小于等于s;每一块中的
阅读全文
摘要:1、二分查找 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是有序表,即表中节点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。 2、二分查找的基本思想 二分查找的基本思想是:(设R[low..high]是当前的查找区间) (1)首先确定该区间的中点位
阅读全文
摘要:查找的定义: 给定一个值K,在含有n个节点的表中找出关键字等于给定值K的节点。若找到,则查找成功,返回该节点的信息或该节点在表中的位置;否则查找失败,返回相关的指示信息。 查找表的数据结构表示: 1、动态查找和静态查找表 若在查找的同时对表做修改操作(如插入和删除),则相应的表称之为动态查找表。否则
阅读全文
摘要:什么叫做聚类? 聚类是一个将数据集划分为若干组或类的过程,并使得同一个组内的数据对象具有较高的相似度,而不同组中的数据对象则是非相似的。 什么来衡量相似? 通常利用对象间的距离来进行描述。 聚类方法的划分 可分为统计方法、机器学习方法和神经网络方法。 统计方法 聚类分析、回归分析、判别分析是多元数据
阅读全文
摘要:运行结果如下: 深度优先搜索序列为:1 2 4 5 3 广度优先搜索序列为:1 2 3 4 5 总的来说,BFS多用于寻找最短路径的问题,DFS多用于快速发现底部节点。 DFS的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底。
阅读全文
摘要:结果运行如下: 1 2 2 3 3 4 5 其主要思想如下:先从原序列中随机选取一个初始值,然后在剩下的数组中分别找出比其小的元素,将其分别放到两个序列中,以此类推,采用随机+分治的思想 堆排序: 输出结果: 1 排序之前的原始数据: 2 7 6 5 4 3 8 9 3 4 排序之后的数据: 5 3
阅读全文
摘要:对于一个int数组,请编写一个选择排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 运行结果如下: 1 2 2 3 3 5 时间复杂度为O(n*n);两两相互比较,较小的元素向上冒泡,较大的元素沉到水底。 选择排序: 运行结果如下: 1 2 2 3 3
阅读全文

浙公网安备 33010602011771号