![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 66
originalIntention
这个作者很懒,什么都没留下…
展开
-
排序算法终结总结<Java实现>
/** * 排序算法学习之希尔排序 * 实现方法: * 希尔排序是特殊的插入排序 * 插入排序按照处理的子数组长度递增分为多趟插入操作 * 而每一趟插入操作处理的子数组元素索引间隔都是1(即步长) * 希尔排序每趟处理的子数组元素索引间隔是动态的。 */package 排序算法.shellSort;public class ShellSort { /** * 对输入数组进原创 2012-11-26 11:17:49 · 672 阅读 · 0 评论 -
递归分治算法之N皇后问题(Java版本)
package 递归分治;/* * 在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照 * 国际象棋的规则,皇后可以攻击与之处在同一行或同 * 一列或同一斜线上的棋子。n后问题等价于在n×n格的 * 棋盘上放置n个皇后,任何2个皇后不放在同一行或同 * 一列或同一斜线上。 * 解向量:(x1, x2, … , xn) * 显约束:xi=1,2, … ,n * 隐约束: * 1原创 2012-11-28 00:03:53 · 1363 阅读 · 0 评论 -
递归分治算法之整数划分问题(Java版本)
/** * 递归分治算法学习之整数分割 * @author Sking */package 递归分治;public class IntegerDivision { /** * 整数划分的核心方法,返回整数n被划分为因子不大于m的划分总个数 * @param n 被划分的整数 * @param m 限制因子不大于m * @return 划分的总个数 */ publ原创 2012-11-28 00:02:41 · 1596 阅读 · 0 评论 -
递归分治算法之二维数组二分查找(Java版本)
/** * 递归分治算法学习之二维二分查找 * @author Sking问题描述:存在一个二维数组T[m][n],每一行元素从左到右递增,每一列元素从上到下递增,现在需要查找元素X(必在二维数组中)在数组中的位置,要求时间复杂度不超过m+n. */package 递归分治;public class BinarySearchInArray { /** * 二维二分搜索的原创 2012-11-28 00:15:05 · 2265 阅读 · 0 评论 -
递归分治算法之线性选择(Java版本)
/** * 递归分治算法之线性选择 */package 递归分治;/* * 线性选择算法 * 给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素 * 在最坏情况下,算法randomizedSelect需要O(n2)计算时间, * 可以证明,算法randomizedSelect可以在O(n)平均时间内找出n个输入元素中的第k小元素。 */import原创 2012-11-28 00:11:04 · 1388 阅读 · 0 评论 -
递归分治算法之比赛日程表(Java版本)
package 递归分治;//设有n=2^k个运动员进行循环赛,设计一个比赛日程表//每个选手必须与其他n-1个选手各赛一次//每个选手一天只能进行一场比赛//循环赛一共要进行n-1天//日程表设计成n行n-1列的表格,其中第i行j列表示第i个选手在第j天遇到的选手public class round_robin { private static int[][] a; publi原创 2012-11-28 00:10:06 · 1099 阅读 · 0 评论 -
递归分治算法之随机快速排序(Java版本)
/** * 递归分治算法学习之随机快速排序 * 采用随机选择枢纽元素的快速排序算法 * @author Sking */package 递归分治;import java.util.Random;public class randomizedQuickSortTest { /** * 采用随机选取枢纽元素策略的一次快排后的划分索引 * @param a 待排序数组 *原创 2012-11-28 00:08:55 · 2080 阅读 · 0 评论 -
递归分治算法之矩阵链问题(Java版本)
/** *递归分治算法之矩阵链 *@author Sking */package 递归分治;public class MatrixChainMultiplication { /** * 递归分治问题之矩阵链问题 * @param s s[i][j]存放矩阵链[i-j]分开的位置 * @param p 矩阵链维度数组 * @param i 矩阵链左端索引 * @原创 2012-11-28 00:05:06 · 904 阅读 · 0 评论 -
递归分治算法之全排列问题(Java版本)
/** * 递归分治算法学习之全排序 * @author Sking */package 递归分治;public class FullPermutation { /** * 产生指定数组指定索引范围的元素的全排列 * list[k....m]的全排列,在全排列中list[k..m] * 中的任何一个元素都可能在索引k的位置上。 * 所以交换出list[k]的位置,相当原创 2012-11-28 00:01:32 · 1122 阅读 · 0 评论 -
递归分治算法之棋盘分割问题(Java版本)
/** * 递归分治算法学习之分割棋盘 * @author Sking 棋盘分割问题: 在一个2k×2k 个方格组成的棋盘中,恰有一个方格与其他方格 不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在 棋盘覆盖问题中,要用4种不同形态的L型骨牌覆盖给定的特殊棋盘 上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 */package 递归分治;public原创 2012-11-28 00:00:16 · 1025 阅读 · 0 评论 -
递归分治算法之二分搜索(Java版本)
/** * 递归分治算法学习之一维二分搜索 * 被搜索的数组必须是有序的才能使用二分搜索算法 * @author Sking性能:时间复杂度为O(log(n)) */package 递归分治;public class BinarySearch { /** * 在指定数组中搜索指定元素 * @param a 指定的数组 * @param x 待搜索的元素 * @r原创 2012-11-27 23:59:02 · 727 阅读 · 0 评论 -
递归分治算法之合并排序(Java版本)
/** * 排序算法学习之合并排序 * @author Sking 实现方法:将待排序数组中相邻元素两两配对作为子数组,排序各个子数组, 构成n/2组长度为2的排序好的子数组;然后将长度为2的子排序 子数组再两两配对,并排序,构成长度为4的已排序子数组。如此递归 直到整个数组是已排序为止。 最坏时间复杂度:O(n*log(n)) 平均时间复杂度:O(n*log(n))原创 2012-11-28 00:06:30 · 1098 阅读 · 0 评论