https://leetcode.com/problems/search-in-rotated-sorted-array/ 解法一:本来有序的数组经过rotate后,分成了两部分。以最大值为分割点。通过二分搜索找最大值。然后在[0 , maxi] , 和[maxi + 1 , nums.size() ...
分类:
其他好文 时间:
2020-04-04 00:17:58
阅读次数:
61
题解:使用二分搜索,在输出小数问题上,一般都会指定允许的误差范围或者是输出中小数点后面的位数。因此在使用二分搜索法时,有必要设置合理的结束条件来满足精度的要求。 设定循环次数作为终止条件,1次循环可以把区间的范围缩小一半,100次的循环则可以达到10^(-30)的精度范围,基本上是没有问题的,也可以 ...
分类:
其他好文 时间:
2020-03-30 23:45:24
阅读次数:
118
当题目是求第k大或者第k小的数的时候,通常用二分搜索。 二分搜索模板: 求第k小个 while(l < r) { int mid = l + (r - l) / 2 ; int cnt = <= mid的数量; if(cnt < k) l = mid + 1 ; else r = mid ; } 求 ...
分类:
其他好文 时间:
2020-03-30 12:57:54
阅读次数:
47
[toc] 顺序查找 当数据存储在诸如列表的集合中时,我们说这些数据具有线性或顺序关系。 每个数据元素都存储在相对于其他数据元素的位置。 由于这些索引值是有序的,我们可以按顺序访问它们。 这个过程产实现的搜索即为顺序查找。 从列表中的第一个元素开始,我们按照基本的顺序排序,简单地从一个元素移动到另一 ...
分类:
编程语言 时间:
2020-03-29 19:36:03
阅读次数:
74
Java算法与数据结构学习 一.数组 1.使用自定义类封装数组 3.查找算法 线性查找 (从头查到尾) 见上面的查找方法 二分法查找 (数组必须是有序数组) 二.简单排序 1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 ...
分类:
编程语言 时间:
2020-03-29 18:00:41
阅读次数:
89
1.常用的查找算法 1) 顺序(线性)查找 2) 二分查找/折半查找 3) 插值查找 4) 斐波那契查找 2.查找 1)线性查找 A.题目: 有一个数列[1,43,22,-10,0],判断数列中是否包含此名称,如果找到了,就提示找到,并给出下标值。 B,思路: 逐一查找 C.代码 package c ...
分类:
编程语言 时间:
2020-03-25 19:10:32
阅读次数:
53
一、什么是二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 二、算法复杂度 二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x ...
分类:
其他好文 时间:
2020-03-24 00:50:07
阅读次数:
74
最近学了一点二分查找,虽然算法难度不是很大,但是在noip中还是比较重要的. 接下来是我对查找算法的思考.(若有疏漏之处,敬请指出) 1.查找方式有两种: (1)线性查找:什么意思呢?就是暴力的用for循环去扫整个数组,枚举就完事儿了。 (2)二分查找:利用中间节点mid进行标记,dio就完事儿了。 ...
分类:
其他好文 时间:
2020-03-22 14:18:37
阅读次数:
79
#include <iostream> using namespace std; //快排 void quickSort(double *q ,int n) //一个double型数组还有一个代表这个数组的位数。 { double *left,*right; left = &q[0]; right ...
分类:
编程语言 时间:
2020-03-21 23:16:49
阅读次数:
63
1、替换空格 题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析: 将长度为1的空格替换为长度为3的“%20”,字符串的长度变长。 如果允许我们开辟一个新的数组来存放替换空格后 ...
分类:
编程语言 时间:
2020-03-19 17:46:39
阅读次数:
71