算法
二宝哥
二宝哥的IT之路
展开
-
归并排序(递归和非递归)的实现
(二分)归并排序,其实就是两两合并,保证每一组有序(开始时每组只有一个元素肯定有序),两组合并后保证有序。因为合并时有对比过程,分别将两组中较小的先放入合并组,两组中有一组没有元素后,另一组元素直接拿到合并组。最终合成的一个大组,即整个数组,也是有序的。递归实现:/** * 归并排序(递归) * @param array 待排序数组 */ private static void mergeSort(int[] array) { if (arra原创 2021-08-11 21:32:52 · 324 阅读 · 0 评论 -
对数器定义和示例
对数器就是让你能不依赖线上测试的情况下,写对代码。写对数器前,首先写好当前算法,然后按照一下步骤:随机生成测试案例 开发出一种绝对正确的算法(实在不好想也可以无) 两种算法对比结果(没有两种算法,就采取验证开发算法结构的方式)随机测试案例:/** * 随机生成平衡二叉树 * @param maxSize 最大结点树 * @param maxValue 结点最大值(不含) * @return 树的根结点 */ public stat原创 2021-08-10 14:52:35 · 224 阅读 · 0 评论 -
二叉搜索树
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。关键点:空树 每颗子树均满足结点打印左子树上所有的值,均小于右子树上所有结点的值。一种比较简单的实现方式,就是树的中序遍历结果,是升序就满足条件 /** * 中序升序就是二叉排序树原创 2021-08-10 14:42:01 · 121 阅读 · 0 评论 -
回溯算法之八皇后问题深度解析
文章内容全部写在了代码注释中/** * 八皇后算法:回溯算法 * * 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 * 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。 * 但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足原创 2018-01-19 19:41:41 · 709 阅读 · 0 评论