
java
文章平均质量分 75
annuoa
这个作者很懒,什么都没留下…
展开
-
动态规划a
动态规划大部分动态规划能解决的问题,都可以通过回溯算法来解决,只不过回溯算法解决起来效率比较低,时间复杂度是指数级别的,动态规范在执行效率上要高很多,只管执行效率提高了,但是动态规划的空间复杂度也提高了,所以很多时候我们会说动态规划是一种空间换时间的算法思想。基础知识点-问题模型0-1背包问题对于一组不同重量、不可分割的物品,我们需要选择一些装入背包,在满足背包最大重量限制的前提下,背包中物品总重量的最大值是多少呢?weight:物品重量,n:物品个数,w:背包可承载重量public int原创 2021-08-30 18:32:15 · 202 阅读 · 0 评论 -
回溯算法a
回溯算法常见的一些问题都是用回溯算法去解答的,例如:八皇后、0-1背包、字符串匹配;感觉回溯算法就是去遍历每种情况的可能性。纯暴力搜索,可以解决的问题:组合问题:n个数里面按一定规则找出k个数的集合切割问题:一个字符串按照一定规则有几种切割方式子集:一个n个数的集合里有多少符合条件的子集排列:n个数按照一定规则全排列,有几种排列方式棋盘问题:n皇后、数独如果把子集问题、组合问题、分割问题都抽象成一棵树的话,那么组合问题和分割问题都是收集树的叶子节点,而子集问题是找数据所有节点;回溯模板原创 2021-08-25 18:52:19 · 263 阅读 · 0 评论 -
分治算法a
分治算法分治算法的核心思想就是分而治之。将原问题划分成n个小规模的问题,并且结构与原问题相似,递归的去解决这些子问题然后在合并其结果,就得到了原问题的解。分治算法是一种处理问题的思想,递归是一种编程技巧。满足分治的条件原问题与分解成的小问题具有相同的模式;原问题分解成的子问题可以独立求解,子问题之间没有相关性,这点是分治算法跟动态规划的明显区别;具有分解终止条件,也就是说,当问题足够小的时候可以直接求解;子问题和并成原问题,而这个合并操作的复杂度不能太高,否则就起不到减小算法总体复杂度的效果原创 2021-08-24 16:12:33 · 215 阅读 · 0 评论 -
贪心算法a
贪心算法贪心算法有很多经典的应用:霍夫曼编码、prim和kruskal最小生成树算法、dijkstra单源最短路径算法。贪心算法解决问题步骤很常见的一个问题,比如背包问题。第一步,当我们看到这类问题的时候,首先要联想到贪心算法:针对一组数据,我们定义了限制值和期望值,希望从中选出几个数据,在满足限制值的情况下,期望值最大。第二步,我们尝试看下这个问题是否可以用贪心算法解决:每次选择当前情况下,对限制值同等贡献量的情况下,对期望值贡献最大的数据。第三步,我们举几个例子看下贪心算法产生的结果是否是原创 2021-08-23 14:48:09 · 304 阅读 · 0 评论 -
跳表+散列表+哈希算法
跳表链表加多级索引的结构就是跳表跳表中快速的插入、删除、查询任意数据的时间复杂度是O(logn);跳表的空间复杂度是O(n)散列表散列表英文叫hash table,就是哈希表或者hash表。散列表用的事数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一中扩展,由数组演化而来。可以说,如果没有数组就没有散列表。散列表中有键、散列函数、散列值散列函数,就是一个函数,它可以定义成hash(key),其中可以表示元素的键值,hash(key)的值表示经过散列函数计算得到的散列值原创 2021-08-17 16:12:04 · 254 阅读 · 0 评论 -
二分查找算法
二分查找二分查找针对的是一个有序的数据集合,查找思想有点儿类似于分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0.二分查找的时间复杂度为O(logn)二分查找的递归与非递归实现非递归实现public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <= high) { int mid =原创 2021-08-16 19:21:09 · 963 阅读 · 0 评论 -
排序算法a
排序算法最经典的、最常用的排序算法:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。排序算法的三种要素:排序算法的执行效率最好、最坏、平均情况时间复杂度;时间复杂度的系数、常数、低阶;比较次数和交换(移动)次数;排序算法的内存消耗原地排序就是空间复杂度是O(1)的排序算法排序算法的稳定性待排序列的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。1.冒泡排序 public void bubbleSort(int[] a,int n原创 2021-08-13 15:19:23 · 345 阅读 · 0 评论 -
栈和队列相关算法题目
算法面试题栈和队列栈栈的基本性质栈的应用小问题几个练习题有效的括号棒球比赛比较含退格的字符串单调栈[^1] [^2]单调栈模板下一个更大元素每日温度下一个更大的元素II队列循环队列阻塞队列和并发队列几个小的例子用队列实现栈设计循环队列功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章原创 2021-08-09 01:11:50 · 304 阅读 · 0 评论 -
myeclipse中如何搜索整个工程
search菜单下的search ,快捷键为(ctrl + H)-在 eclipse 上边有一个 search 按钮, 像一支笔似的那个.1. 首先选中你要搜的工程. 点击 search 按钮.2. 右上角有二个键头, 往前翻, 定位到 File Search 这个页面3. 在 containing text 添上你要找的内容4. 在 file name patterns: 上原创 2013-10-28 16:02:47 · 1009 阅读 · 0 评论 -
eclipse下配置tomcat
为了在Eclipse中进行struts2的测试,才发现自己机器上的Eclipse没有集成Tomcat,在网上找了半天,不是这个插件没有下载地址,就是那个有好多注意事项或者版本问题。结果,自己到tomcatforEclipse的插件的网上直接下载了一个,按照提供的说明一下子就配成了。网上的那么多配置文章,唉,不说啥了。看看我的配置步骤吧。1,Eclipse的安装。这个是从Ecli转载 2013-10-13 14:33:00 · 565 阅读 · 0 评论 -
Eclipse 配置 Heritrix 1.14.4
1. 首先从http://sourceforge.net/projects/archive-crawler/ 中下载 heritrix-1.14.4.zip 和 heritrix-1.14.4-src.zip(Windows) 2. 在Eclipse 中创建一个java project的工程(可以命名为Heritrix) 3. 将heritrix-1.14.4-src.zip解转载 2013-09-12 10:58:14 · 800 阅读 · 1 评论 -
java写入文件的操作
/*** 向文本文件中写入内容* * @param path* @param content* @param append*/public void writefile(String path, String content, boolean append) {BufferedWriter bw;File writefile;try {// 通过这个对象原创 2013-01-13 21:45:58 · 465 阅读 · 0 评论