/* 二分搜索出一个01段或10即可 先用n个0确定1的个数num 然后测试区间[l,mid]是否全是0或全是1 如果是,则l=mid,否则r=mid,直到l+1==r 然后再测试l是1还是r是1 如何判定[l,mid]是否全是0或1,将这一段变成1进行询问,如果结果=num+len或者结果=num... ...
分类:
其他好文 时间:
2019-01-31 19:17:59
阅读次数:
233
二分搜索树的contains方法实现逻辑如下: 6-6 二分搜索树的前序遍历 二分搜索树的遍历操作,遍历操作就是把所有节点都访问一遍 前序遍历:先访问节点,在访问左右子树。 递归代码:先写递归终止条件,再写递归组成逻辑 6-7 二分搜索树的中序遍历和后序遍历 中序遍历的业务逻辑如下: 后序遍历的业务 ...
分类:
其他好文 时间:
2019-01-30 01:30:13
阅读次数:
168
二分搜索树添加新元素60, 60>41(根节点),所以一定要插入到41的右子树。 接着在和58比较 对于二分搜索树的插入操作现在这么写是比较复杂的,在下一小节将改进代码,算法没有变化,但会让代码简洁很多。通过下一节,会让大家体会对于递归算法来说,一方面有不同是写法,另一方面终止条件也会有不同的考量。 ...
分类:
其他好文 时间:
2019-01-29 00:30:04
阅读次数:
209
6-1 为什么要研究树结构 6-2 二分搜索树基础 恢复内容结束 6-1 为什么要研究树结构 6-2 二分搜索树基础 恢复内容开始 6-1 为什么要研究树结构 6-2 二分搜索树基础 恢复内容结束 6-1 为什么要研究树结构 6-2 二分搜索树基础 二分搜索树基本代码 ...
分类:
其他好文 时间:
2019-01-28 21:18:13
阅读次数:
203
二分查找原理: 又称为折半查找,元素必须是顺序存储的,按照大小有序排列. 如果元素按照升序排列,取中间位置的元素与要查找的元素比较,两者相等就表示查找元素成功;否则,按照中间位置的元素为界限,将左右的元素分成两部分,如果中间位置的元素大于要查找的元素,就在左边部分取中间位置继续查找;如果中间位置的元 ...
分类:
其他好文 时间:
2019-01-24 18:51:18
阅读次数:
155
顺序查找 查找指定值 查找最小值和最大值 自组织数据 对于未排序的数据集来说,当被查找的数据位于数据集的起始位置时,查找是最快、最成功的。通过将成功找到的元素置于数据集的起始位置,可以保证在以后的操作中该元素能被更快地查找到。 二分查找 如果你要查找的数据是有序的,二分查找算法比顺序查找算法更高效。 ...
分类:
编程语言 时间:
2019-01-24 01:15:57
阅读次数:
200
题意:给一个矩阵(n*n n<=14)求出选择矩阵不同行,不同列,最后加起来和大于m的选择数 状压dp做法: 由于每一行都要选择,那么认为就是从第一行开始顺序选择 。那么一个二进制数,它的1的个数就是选择了的行数,而每个位置的1代表了这一个列选择或则不选择 这样就用一个二进制数表示出来状态了。 dp ...
分类:
其他好文 时间:
2019-01-22 21:49:43
阅读次数:
186
#include #include //先进行排序,在进行查找 void sort(int arr[10]) { int i,j,idx; for(i=0;iarr[j]) idx = j; } if(idx!=i) { int temp = arr[i]; ... ...
分类:
其他好文 时间:
2019-01-20 20:07:15
阅读次数:
168
package com.zlhj.logic.doc;import java.util.Arrays;/** * 类的作用: * * @ClassName : Tser * @Author : liyang * @Date : 2019/1/19 17:00 * @Version 1.0 *//* ...
分类:
编程语言 时间:
2019-01-19 20:11:20
阅读次数:
203
排序思想: 1.每次插入,都从前面的有序子表中查找出待插入元素应该被插入的位置; 2.给插入位置腾出空间,将待插入元素复制到表中的插入位置。 注意到该算法中,总是边比较边移动元素,下面将比较和移动操作分离开来, 即先折半查找出元素的待插入位置,然后再统一地移动待插入位置之后的所有元素。 ...
分类:
编程语言 时间:
2019-01-19 15:14:49
阅读次数:
206