广度优先搜索 1、把根节点入队列; 2、如果队列非空,出队,再依次将左子树入队、右子树入队; 3、重复步骤2,直到队列为空。 深度优先搜索 1、把根节点入栈; 2、如果栈非空,则出栈,再依次将右子树入栈、左子树入栈; 3、重复步骤2,直到栈为空。 二叉树镜像 方法1:递归实现,先把根节点的左右子树交 ...
分类:
其他好文 时间:
2018-09-15 00:39:27
阅读次数:
173
一、题目 1、审题 2、分析: 输入一个不重复整形数组,求他的全排序 二、解答 1、思路: 方法一:利用递归实现全排序,先固定第一个值,在对后边全排序...最终当固定的值为最大下标时,则此时即得一排序。 方法二: 将数组排成升序后,依次求得比这一个数组数字大的下一个数字数组,最终这些所有的字典序的数 ...
分类:
其他好文 时间:
2018-09-12 11:08:19
阅读次数:
154
#arr 有序数组#m 需要比较的值#left 左边最小值索引#right 右边最大值索引def bin(arr,m,left,right): # left=0 # right=len(arr)-1 try: midian=(left+right+1)//2 #python取整 #midian=in ...
分类:
其他好文 时间:
2018-09-10 13:34:29
阅读次数:
151
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 递归实现: class Solution(): def Fibnacci(self,n): if n <= 0: return 0 if n == 1: return 1 r ...
分类:
编程语言 时间:
2018-09-08 22:35:37
阅读次数:
222
题目说明 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 解法1 使用归并排序对链表进行排序 / 时间复杂度:O(nlogn) 归并排序的递归实现 / ListNode sortList(ListNode head) { if (head == NULL || head ...
分类:
其他好文 时间:
2018-09-05 09:15:20
阅读次数:
118
快速排序(Quicksort)是对冒泡排序的一种改进,在此使用Python语言简单的递归实现该算法。 ...
分类:
编程语言 时间:
2018-09-05 08:55:28
阅读次数:
164
1、递归函数 1.1、递归函数的限制 (1)递归一定要有退出条件,并且递归调用一定要执行到这个退出条件;如果没有退出条件,就是无限调用,会耗尽所有资源(栈空间); (2)递归调用的深度不易过深,Python对递归调用的深度做了限制,以保护解释器; 1.2、递归实例 ①、递归实现菲薄拉切数列 ②、递归 ...
分类:
编程语言 时间:
2018-09-02 18:42:18
阅读次数:
138
一:题目 二:思路 三:算法实现(这里使用方法一:递归实现简单易懂) ...
分类:
编程语言 时间:
2018-08-31 21:22:54
阅读次数:
200
递归 函数间接或直接调用函数自身就是递归 递归要有边界条件,递归前进段,递归返回段 递归一定要有边界条件, 边界条件不满足,递归前进, 满足边界条件,递归返回 斐波那契数列的递归实现 这种调用方式效率极低,每一次的计算都没有用到前一次计算出的值 可以改写为 以上方式每次计算可以用到上次的结果,n是边 ...
分类:
其他好文 时间:
2018-08-30 00:12:20
阅读次数:
118
一、递归实现全排列 1 #include"cstdio" 2 int A[50]; 3 void print_permutation(int n,int *A,int cur){ 4 if(cur==n){ 5 for(int i=0;i<n;i++) 6 printf("%d",A[i]); 7 ...
分类:
编程语言 时间:
2018-08-28 17:06:37
阅读次数:
149