二分查找算法主要是解决在“一堆数中找出指定的数”这类问题。 而想要应用二分查找法,这“一堆数”必须有一下特征: 存储在数组中 有序排列 二分查找法的基本实现 二分查找法在算法家族大类中属于“分治法”,分治法基本都可以用递归来实现的,二分查找法的递归实现如下: 迭代实现如下: 二分查找法的O(log ...
分类:
编程语言 时间:
2018-10-10 14:32:24
阅读次数:
198
二分查找算法(JAVA) 1.二分查找又称折半查找,它是一种效率较高的查找方法。 2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列 3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值 ...
分类:
其他好文 时间:
2018-10-09 15:04:12
阅读次数:
111
Java的经典排序 选择排序 冒泡排序 折半查找 选择排序 | 选择排序 | 3 | 2 | 1 | 5 | 8 | | : : | : : | : : | | | | | 0 | 1 | 3 | 2 | 5 | 8 | | 1 | 1 | 2 | 3 | 5 | 8 | | 2 | 1 | 2 | ...
分类:
编程语言 时间:
2018-10-07 22:06:28
阅读次数:
218
递归函数 1. 递归 (1)什么是递归:在函数中调用自身函数(2)最大递归深度:默认997/998——是Python从内存角度出发做的限制 (3)修改最大深度:最好不要改——递归次数太多,则不适合用递归解决问题 2. 递归的优点 会让代码变简单 3. 递归的缺点 占用内存 4. 能看懂递归 5. 应 ...
分类:
编程语言 时间:
2018-10-07 20:26:05
阅读次数:
230
? 书中第一章部分程序,加上自己补充的代码。包括若干种二分搜索和寻找图上连通分量数的两种算法。 ● 代码,二分搜索 ● 重复元素二分搜索,包括查找第一次出现、最后一次出现,以及出现多少次 ● 序列乱序输出 ● 计算图连通分量的算法。输入文件第一行是节点数,后面每行是一个连接的两端节点编号,用 jav ...
分类:
编程语言 时间:
2018-10-07 19:24:01
阅读次数:
179
第二章是递归和分治策略,通过Hanoi塔问题、排列问题等学习递归的思想,通过二分搜索算法、大整数乘法等学习了分治法的思想,并学习了归并排序和快速排序两种排序方法。PTA上的问题一是找第k小的数,用到了快速排序的方法对数组进行排序,同时在寻找第k小的数时递归调用int find(int a[],int ...
分类:
编程语言 时间:
2018-10-06 21:38:48
阅读次数:
169
先上维基百科 并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题 有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作 Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。 Union:将两个 ...
分类:
其他好文 时间:
2018-10-04 16:41:06
阅读次数:
236
"传送门" Solution 纯搜索80分,加二分90分,再补一个小剪枝满分qwq 真.小剪枝:如果下一个的需求和当前相同,那么不需要再次从头开始试(看代码就明白了233) Code ...
分类:
其他好文 时间:
2018-10-04 09:03:38
阅读次数:
174
目录 什么是递归 递归例题 递归函数与三级菜单 递归函数与二分查找算法 1,什么是递归 递归的定义:在一个函数里再调用这个函数本身 递归的最大深度默认是:997 是python从内存角度出发做的限制 1.1 测试递归最大深度 1.2 修改递归最大深度 2,递归例题 2.1 A 比 B 大两岁,B 比 ...
分类:
编程语言 时间:
2018-09-26 14:58:16
阅读次数:
147
折半查找链接:https://www.baidu.com/link?url=yNyTQeYRL5xwA0aA9W8iAUVeroe87jU8j1v5qTrvYJ8uPCU8O-Pgw9oHg-TzHZwc3Hh3Lly8fkEw4fGaiUjKXa-n4rTu9eVQY0mdn-s_ttwHYINP ...
分类:
编程语言 时间:
2018-09-26 00:10:16
阅读次数:
197