码迷,mamicode.com
首页 >  
搜索关键字:递归算法    ( 1027个结果
递归非递归的二叉树遍历(递归前中后,非递归前中后,层次遍历,凹入打印法等)
由于所有的递归算法都可以借助于堆栈转换成循环结构的非递归算法。方法一:形式化模拟转换。方法二:根据要求解问题的特点设计借助于堆栈的循环结构算法。而此次正好是利用第二种按方法求解。1.1非递归前序遍历:首先利用下图来设计非递归前序遍历算法思想: 堆栈结构体如下:#define size 100 typedef struct { DataType data[size]; int...
分类:其他好文   时间:2016-06-02 14:48:57    阅读次数:282
二叉树的创建和相关算法
二叉树是一种非常重要的数据结构,它是分支结构的基础,今天本人将写一篇博客来叙述一下其相关的算法以及二叉树的创建过程! 1:二叉树的创建: 主要有 先序,中序,后序,层序创建几种方式,其中前三种建立在二叉树遍历方式的基础上的。 (1):先序创建      先序创建就是先创建根节点,随后依次创建其左子树和右子树,我们可以采用递归的方法来实现,因为二叉树本身就是建立在递归算法的基础上的。 (2...
分类:编程语言   时间:2016-05-30 14:54:22    阅读次数:201
【Java】斐波那契数列(Fibonacci Sequence、兔子数列)的3种计算方法(递归实现、递归值缓存实现、循环实现)
斐波那契数列:0、1、1、2、3、5、8、13………… 他的规律是,第一项是0,第二项是1,第三项开始(含第三项)等于前两项之和。 > 递归实现 看到这个规则,第一个想起当然是递归算法去实现了,于是写了以下一段: 它能正常运行,比如计算第10项的结果为55。 但是,计算数字大点的数据,则很慢很慢,因 ...
分类:编程语言   时间:2016-05-29 00:58:58    阅读次数:347
java之数据结构之链表及包装类、包
链表是java中的一种常见的基础数据结构,是一种线性表,但是不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。与线性对应的一种算法是递归算法:递归算法是一种直接或间接的调用自身算法的过程,往往使算法的描述简洁而且易于理解。 使用递归算法就是自己调用自己,而递归算法必须要有出口,递归过 ...
分类:编程语言   时间:2016-05-29 00:47:36    阅读次数:230
[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .
递归优化 很多算法都依赖于递归,典型的比如分治法(Divide-and-Conquer)。但是普通的递归算法在处理规模较大的问题时,常常会出现StackOverflowError。处理这个问题,我们可以使用一种叫做尾调用(Tail-Call Optimization)的技术来对递归进行优化。同时,还 ...
分类:编程语言   时间:2016-05-27 14:27:59    阅读次数:364
排序算法总结之归并排序
一,归并排序介绍 归并排序是一个典型的基于分治的递归算法。它不断地将原数组分成大小相等的两个子数组(可能相差1),最终当划分的子数组大小为1时(下面代码第17行left小于right不成立时) ,将划分的有序子数组合并成一个更大的有序数组。为什么是有序子数组??? 归并排序的递归公式:T(N) = ...
分类:编程语言   时间:2016-05-24 11:57:15    阅读次数:180
【数据结构】大量数据(20万)的快速排序的递归与非递归算法、三数取中思想
快速排序的挖坑法与prev、cur法,我们在上一篇博客的第6个排序中讲的非常详细,http://10740184.blog.51cto.com/10730184/1774508【数据结构】常用排序算法(包括:选择排序,堆排序,冒泡排序,选择排序,快速排序,归并排序) 有兴趣的话,相信聪明的你,一看就会秒懂快速排..
分类:编程语言   时间:2016-05-20 14:40:09    阅读次数:275
s11d27 算法
s11d27 算法 一、理论 1.1 时间复杂度和空间复杂度的理论: 1)空间复杂度: 是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了, 简单说就是递归集算时通常是反复调用同一个方法,递归n次,就需要n个空间。 2)时间复杂度 一个算法花费的时间与算法中语句的执行次 ...
分类:编程语言   时间:2016-05-17 13:04:33    阅读次数:233
图的深度优先搜索
1.概述 深度优先搜索遍历图的过程是一个递归过程,我们可以用递归算法来实现。在算法中为了避免在访问过某顶点后又沿着某条回路回到该顶点这种重复访问的情况出现,就必须在图的遍历过程中对每一个访问过的顶点进行标识,这样才可以避免一个顶点被重复访问的情况出现。所以我们在遍历算法中对n个顶点的图设置了一个长度 ...
分类:其他好文   时间:2016-05-16 14:09:51    阅读次数:314
Python第五讲
一、冒泡算法 1、将两个变量的值互换 结果: 2、冒泡算法 注:内层的for循环是为了找出列表中的最大值放到最后,外层的for循环是为了把除了最大值之外的其他值进行排序,最后把列表的顺序变成了由小到大的顺序。 二、递归算法 在函数的内部可以调用其它函数,如果一个函数在其内部调用自身,则这个函数就是递 ...
分类:编程语言   时间:2016-05-15 12:21:03    阅读次数:217
1027条   上一页 1 ... 57 58 59 60 61 ... 103 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!