![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法思考
Christophe2008
性格开朗,喜欢编程,大学生。
展开
-
用合并排序算法解决逆序数问题
这段时间本人开始学习《算法导论》这本书,并且将书中的某点问题的解决写入自己的博客中,当成对自己的勉励。 分治法(divide-and-conquer)。为了解决一个给定的问题,算法要一次或多次地递归调用其自身来解决相关的子问题。通常采用分治策略:1、分解:将原问题划分成一系列子问题;2、解决:递归地解各子问题。若子问题足够小,则直接求解;3、合并:将子问题的结果合并成原问题的解。 逆序对问题:设A[1..n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个原创 2010-10-18 22:54:00 · 2285 阅读 · 0 评论 -
图的常用算法的Java实现
<br />/** * <p>Title: 图的遍历、最小生成树、最短路径</p> * * * <p>Description: * * 采用邻接矩阵做为图存储结构,有权无向图,不相连的值为 -1 * * 图的遍历中深度遍历采用递归方法,广度遍历使用辅助队列 * * 最小生成树采用克鲁斯卡尔(Kruskal)算法,使用一数组记录节点的连通情况 * * 图的最短路径采用迪杰斯特拉(Dijkstra)算法,使用队列记录依次途经的路径 *转载 2011-05-14 21:18:00 · 9698 阅读 · 0 评论 -
回溯法
<br /> 算24点问题<br />问题描述:给定4个正整数,用算术运算符 +, -, *, / 将这4个正整数连接起来,是最终的得数恰为24点。<br /> 数据输入:由文件input.txt给出输入数据,第一行有4个正整数。<br /> 结果输出:将计算24的算术表达式输出到文件output.txt。如果有多个满足要求的表达式,只要输出一组,每一步算式用分号隔开。如果无法得到24则输出“No Solution!”。<br /> 输入文件示例:1 2 3 7<br /> 输出文件原创 2011-05-27 21:30:00 · 2439 阅读 · 0 评论 -
递归与分治策略——集合划分问题,众数问题
集合划分问题n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:{1},{2},{3},{4}}, {{1,2},{3},{4}},{{1,3},{2},{4}}, {{1,4},{2},{3}},{{2,3},{1},{4}}, {{2,4},{1},{3}},{{3,4},{1},{2}}, {{1,2},{3,4}},{{1,3},{2,4}}, {{1,4},{2,3}},{{1,2,3},{4}}, {{1,2,原创 2011-04-21 15:05:00 · 7980 阅读 · 1 评论 -
动态规划
<br />独立任务最优调度问题<br />问题描述:<br />用2台处理机A和B处理n个作业。设第i个作业交给机器A处理时所需要的时间是a[i],若由机器B来处理,则所需要的时间是b[i]。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。研究一个实例:n=6, a = {2, 5, 7, 10, 5, 2}, b = {3, 8, 4, 11, 3, 4}。<br />编原创 2011-04-21 15:13:00 · 1830 阅读 · 0 评论 -
贪心算法
<br />数列极差问题<br />问题描述:在黑板上写了N个正整数组成的一个数列,进行如下操作:每次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min,则该数列的极差定义为M=max-min。<br /> 算法设计:对于给定的数列,计算极差M。<br />分析:用贪心算法来做,首先来看怎样来求最大值与最小值,设有三数x<y<z,按题目算法来做结果有下面三种:num1=(x*y+1)*z+1=xyz原创 2011-04-21 15:15:00 · 2969 阅读 · 0 评论 -
百度2012实习生招聘笔试题目(java 方向)
1.给一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么b是a的兄弟单词,比如单词army和mary互为兄弟单词。现在要给出一种解决方案,对于用户输入的单词,根据给定的字典找出输入单词有那些兄弟单词。请具体说明数据结构和查询流程,要求时间和空间效率尽可能地高。2.线程进程的区别和联系?什么是线程安全?3.c和c++如何动态分配释放内存?区别?4.爬虫URL,两个单链表-转载 2012-05-07 00:07:44 · 2299 阅读 · 0 评论