二分查找 二分查找只可以作用在有序序列中。 循环low版 递归版 ...
分类:
其他好文 时间:
2020-04-12 14:19:56
阅读次数:
61
采用递归的方法实现二分查找。 在一个有序数组list中,从下标1开始,查看target是否在数组中。在的话就返回下标,否则返回0。 思路 1.对线性表排序,通常是由小到大排序。 2.取中间值与目标值比较。 2.1取中间值与目标值比较,若相等,则返回下标,退出函数。 2.2中间值比目标值要大,那么在最 ...
分类:
其他好文 时间:
2020-03-24 00:46:01
阅读次数:
62
一、题目说明 题目148. Sort List,对链表进行排序,时间复杂度要求是O(nlog(n)),空间复杂度要求是常量。难度是Medium! 二、我的解答 根据要求,唯一符合标准的是归并排序。 性能如下: 三、优化措施 将merge函数,修改为非递归版本: 性能如下: ...
分类:
其他好文 时间:
2020-03-21 09:21:44
阅读次数:
61
一:解题思路 链表是递归定义的,所以关于链表的大部分问题也可以用递归来解决。当然也可以不用递归来解决这个问题。这里来介绍2种方法,一种是递归方法,一种是非递归的方法。 二:完整代码示例 (C++版和Java版) 递归版C++ class Solution { public: ListNode* re ...
分类:
其他好文 时间:
2020-03-08 22:00:11
阅读次数:
76
递归程序在设计时很常见,有时能很大程度上简化问题解决的复杂性. 下面就算法导论的2.3-4习题进行解答. 具体就是写出插入排序的递归版本. ...
分类:
编程语言 时间:
2020-03-02 14:40:48
阅读次数:
62
递归程序在设计时很常见,有时能很大程度上简化问题解决的复杂性. 下面就算法导论的2.3-4习题进行解答. 具体就是写出插入排序的递归版本. 1 void insert_sort(int a[],int n) 2 { 3 if(n==1) return ; 4 else 5 { 6 insert_so ...
分类:
编程语言 时间:
2020-03-01 14:25:00
阅读次数:
94
不知道说些啥 #include<bits/stdc++.h> using namespace std; const int N=500010; int f[N]; int dep[N],siz[N]; int n,m; int F(int x){//递归版路径压缩 if(f[x]==x)return ...
分类:
其他好文 时间:
2020-02-07 18:45:01
阅读次数:
54
二叉树的基本操作,为 二叉查找(搜索、排序)树、二叉平衡树(AVL树)、红黑树 等提供基础接口。 名称空间:namespace BTO 基础接口如: ① 遍历操作: 递归 和 非递归 版本的 先序、中序、后序 遍历。 层序遍历。 接口原型:void xxxTraversal(_Node*& _nod ...
分类:
其他好文 时间:
2020-02-06 23:11:01
阅读次数:
84
我们知道,递归版路径压缩的实质就是在回溯过程中把沿途出现的爸爸变成兄弟,最终由N代同堂变成二代同堂。 所以我们可以利用这样的方法写出非递归路径压缩。 首先要找到根节点root,然后从当前位置出发寻找根节点,沿途得到的父亲节点father全部直接指向根节点。 如何得到沿途的父节点呢?当然是迭代啦! 1 ...
分类:
其他好文 时间:
2020-01-17 22:51:26
阅读次数:
104
二叉树的前序遍历(递归版): public ArrayList<Integer> inOrder(TreeNode root ){ ArrayList<Integer> result = new ArrayList<Integer>(); if(root == null){ return resul ...
分类:
其他好文 时间:
2019-11-30 19:14:57
阅读次数:
78