![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
程序小白%me
这个作者很懒,什么都没留下…
展开
-
扩号匹配问题——递归
括号匹配问题我感觉十分有趣,它本身的难度并不是太大,但它考察的点包括了递归传递以及回溯的理解程度,将它一步步完善从开始到完成的过程,相信会对递归有一个更深的了解。解题思路将它简化,从最简单的问题开始,逐步的完善它。假设问题仅仅只是一个左括号匹配一个右括号,与顺序无关。那问题就相对的比较简单了,思路就是统计左括号的个数,然后碰到右括号在抵消一个左括号。(也就是定义俩个关键值为0,一...原创 2019-11-26 21:51:02 · 1159 阅读 · 0 评论 -
递归---全排列问题
递归—全排列问题1. 题目openjudge 百练全排列问题2. 解题思路递归解题的第一步:分解问题。上图所示,在a b c 的全排列问题上,在枚举出来时,为了确保枚举的正确性,所用的方法和顺序一般就如上图所示。问题的分解也就明显了,也就是将第一个位置的元素依次绑定,对后面的元素的位置进行排序。n个元素的排序问题也就变成了n-1个元素的排序。问题也就分解了。寻找问题的...原创 2019-11-21 16:50:16 · 293 阅读 · 2 评论 -
汉诺塔 --------- 非递归实现 ---- 栈的应用
这篇算是对汉诺塔的补充下篇再聊 ----全排列----递归前言上期讲了汉诺塔的递归实现,递归实现它有它的好处,但也有坏处优点:简洁。在树的前序,中序,后序遍历算法中,递归的实现明显要比循环简单得多。缺点:递归由于是函数调用自身,而函数调用是有时间和空间的消耗的:每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址以及临时变量,而往栈中压入数据和弹出数据都需要时间。...原创 2019-11-20 13:58:25 · 602 阅读 · 1 评论 -
递归--汉诺塔
递归刚开始学习C语言的时候,感觉有着很多的难点,自学起来真的挺困难的,不过递归无疑是给我印象最为深刻的一个了,递归,简单了来说就是函数本身自己调用自己,当初看着这个定义的时候我觉得没啥难的,当真正了解到它的时候我才知道自己当初多么的天真.递归的经典——汉诺塔问题有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 每次只...原创 2019-11-14 21:35:47 · 234 阅读 · 1 评论 -
快速排序--分步解析
关于快速排序,可以先思考下面这个问题,并试着实现它1、设有一元素为整数的线性表L=(a1,a2,a3,…,an),存放在一维数组A[n]中,设计一个算法,以表中an作为参考元素,将表分为左、右两部分,其中左半部分每个元素小于等于an,右半部分每个元素都大于an,an位于分界位置上(要求结果仍存放在A[n]中)。#下图是思路图解 (结合下方实例代码反复推算科熟练掌握,注意结合编程练习)...原创 2019-11-10 22:05:41 · 1375 阅读 · 0 评论