Algorithm&DataStructure
文章平均质量分 81
Crayondeng
这个作者很懒,什么都没留下…
展开
-
寻找主元素
问题分析:所谓找主元素,就是在一个整数序列(数组)中,里面的某一个元素出现的次数超过元素总个数的一半,那么就陈这个元素为主元素。性质1: 如果存在主元素的话,主元素一定是中位数。方法1:使用快排O(nlogn)进行排序,找到中位数,然后判断首元素是否和中位数相等、以及尾元素是否和中位数相等。 如果有一个以上的相等,则存在主元素(中位数)。方法2:使用O(n)原创 2013-10-06 23:38:38 · 3000 阅读 · 0 评论 -
归并排序
归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。归并排序基本思想:设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列 temp (相当于输出序列)中,待合并完成后将 temp 复制回 arr原创 2013-10-13 17:49:15 · 2637 阅读 · 0 评论 -
动态规划 之 拔河比赛人员分配问题
动态规划之0-1背包问题的应用实例:拔河问题:n 个人参加拔河比赛,每个人有自己的重量,现在需要把他们分成两组进行比赛,每个人属于其中的一个组,两组的人员个数相差不能超过1。为使比赛公平,求使得两组重量差最小的分配。原创 2013-11-16 00:26:44 · 12248 阅读 · 1 评论 -
动态规划 之 最长公共子序列问题
下面这篇文章介绍一下在算法设计中动态规划的最长公共子序列的问题。最长公共子序列问题所谓,也即是分别给出长度为n和m的字符串A,B,然后找出其中最长公共子序列的最优值和最优解。所谓最优值,也就是求出这个最长公共子序列的长度;而最优解,就是要求出这个最长最长公共子序列是什么的问题。给个不太恰当的例子:我们中学数学中经常会遇到求函数最值的问题,比如说求出函数 f(x) 的最大值,那么这个最大值就原创 2013-11-07 20:47:19 · 6325 阅读 · 0 评论 -
快速排序
快速排序(QuickSort)1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原原创 2013-10-13 20:04:20 · 1923 阅读 · 0 评论 -
数据结构 之 二叉堆
一、二叉堆简介: 二叉堆故名思议是一种特殊的堆,二叉堆具有堆的性质(父节点的键值总是大于或等于(小于或等于)任何一个子节点的键值),二叉堆又具有二叉树的性质(二叉堆是完全二叉树或者是近似完全二叉树)。当父节点的键值大于或等于(小于或等于)它的每一个子节点的键值时我们称它为最大堆(最小堆),或者是大根堆(小根堆)。 二叉堆多数是以数组作为它们底层元素的存储。假如根节点在数原创 2013-11-24 21:16:56 · 2180 阅读 · 1 评论 -
动态规划 之 0-1背包问题
关于背包问题,其实可以分为两种类型:0-1背包问题 和 部分背包问题。1、先通过一个例子来说明一下二者的区别吧!有一个窃贼在偷窃一家商店时发现有n件物品,第i件物品价值为vi元,重量为wi,假设vi和wi都为整数。他希望带走的东西越值钱越好,但他的背包中之多只能装下W磅的东西,W为一整数。他应该带走哪几样东西?0-1背包问题:每件物品或被带走,或被留下,(需要做出0-1选择)。小偷原创 2013-11-13 00:26:32 · 30296 阅读 · 1 评论 -
回溯法 之 八皇后问题
回溯法回溯法有“通用的解题法”之称。用它可以系统地搜索一个问题的所有解或任一解。回溯法是一种即带有系统性又带有跳跃性的搜索算法。它在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该节点是否包含问题的解。如果不包含,则跳过对以该节点为根的子树的搜索,逐层向其它祖先节点回溯。否则,进入该子树,继续按照深度优先策略搜索。回溯法求问题的所有解时,要回原创 2013-12-06 22:21:23 · 11984 阅读 · 0 评论 -
回溯法 之 马周游(马跳日)问题
回溯法的应用很多,下面讲述一个有趣的马周游问题。马周游(马跳日)问题:在一个 8*8 的棋盘上(如下图)一匹马从任意位置开始,恰好走过棋盘中的每一格(每个格子有且只能走一次),并且最后还可以回到起点位置。 这个问题其实可以进行推广:即棋盘大小不一定是 8*8 ,只要棋盘大小 M *原创 2013-12-17 11:38:47 · 21070 阅读 · 12 评论