![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法详解
文章平均质量分 77
lloil
这个作者很懒,什么都没留下…
展开
-
回文字符串
关于回文字符串,网上好的算法太多了,其中有个M什么的算法比较好,复杂度比较低,自己贴一个垃圾算法,只是用我们的一般思想解决的,勉强可以看吧回文串:就是从左到右或者从右到左都是一样的 比如 abcdcba,或者abccba 这就涉及到奇数偶数的问题了在我的程序中,我借助了一个#字符,分开所有的字符如 abcgdh 变成a#b#c#g#d#h 只在中间加入,这样就解决了奇数偶数的问题了程原创 2013-04-08 22:11:10 · 1071 阅读 · 0 评论 -
递归算法详解
递归算法详解 C语言通过运行时堆栈来支持递归的调用,在我们刚接触递归的时候,国内很多教材都采用求阶乘和菲波那契数列来描述该思想,就如同深受大家敬爱的国产的C语言程序设计,老谭也用了阶乘来描述递归,以至于很多新手一看见阶乘就理所当然的认为是递归,坑了不少人,说实在的,描述这个思想还是可以,但是利用递归求阶乘可是没有一点好处,递归解决菲波那契数列效率更是低得惊人,这点是显而易见的原创 2013-04-06 18:25:42 · 22415 阅读 · 0 评论 -
贪心算法详解
有人说贪心算法是最简单的算法,原因很简单:你我其实都很贪,根本不用学就知道怎么贪。有人说贪心算法是最复杂的算法,原因也很简单:这世上会贪的人太多了,那轮到你我的份? 贪心算法详解原创 2013-03-31 02:03:56 · 239305 阅读 · 54 评论 -
分治算法详解
分治算法详解 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问原创 2013-03-20 18:27:13 · 24747 阅读 · 15 评论 -
各种螺旋矩阵
螺旋矩阵无聊,不知道干点什么,今天就写个关于螺旋矩阵的问题吧,开始的三个螺旋矩阵采用的是同一种方法,后面会有新方法!由外向内的螺旋矩阵先来看看普通的螺旋矩阵,由外面向里面螺旋的 如下:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9这样的N阶原创 2013-04-17 18:33:04 · 5419 阅读 · 0 评论 -
二叉树的12大问题
转载自:http://blog.csdn.net/randyjiawenjie/article/details/6772145 觉得很好,收藏了二叉树的常见问题有如下几个,如果解决好了,就跟链表一样轻松:唯一不一样的是,二叉树是非线性结构。常见的问题如下1.二叉树三种周游(traversal)方式: 2.怎样从顶部开始逐层打印二叉树结点数据 3.如何判断原创 2013-04-20 02:18:46 · 1621 阅读 · 0 评论 -
输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
这道题的思路参考0-1背包:定义函数F(n,m)来求解这个问题,那么F(n,m)可以分解为两个子问题F(n-1,m)和F(n-1,m-n).由于题目要求列出所有的组合,使用类似动态规划的方法比较复杂,我在这里直接使用递归来解决这个问题。虽然效率可能不是很好,但是代码的可读性还是比较好的复制代码 1 #include "stdafx.h" 2 #include 3 4 using转载 2013-04-20 03:12:54 · 1787 阅读 · 0 评论 -
哈夫曼树
理论文字来源于网络给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。2、结点的原创 2013-04-20 01:59:20 · 2272 阅读 · 1 评论 -
蓝桥杯试题
蓝桥杯初赛题目答案持续更新中,先把题贴上来,题目来源于网络!第一题:微生物增殖假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。 一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。 现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。原创 2013-04-18 21:34:58 · 1911 阅读 · 0 评论