题目链接:POJ 1631 Bridging
signals【题意】简单来说就是求最长上升子序列的长度。【思路】这道题目的数据规模有40000之多,如果用普通的动态规划O(n^2)肯定会超时的,所以要用上二分查找(又是二分啊,真牛逼)来进行优化,O(nlogn)的时间复杂度就OK了。我使用了C++的...
分类:
其他好文 时间:
2014-05-19 10:09:54
阅读次数:
357
问题描述:能否快速找到一个数组中的两个数字,让这两个数字之和等于一个给定的数字,为了简化起见,我们假设这个数组中肯定存在这样一组或以上符合条件的解。这里我们只考虑一种解的情况。解法:1.
暴力解法------O(n^2)2. 排序+二分查找------O(nlogn)3. hash表查找------...
分类:
其他好文 时间:
2014-05-19 08:51:09
阅读次数:
313
#includeint solver(const int a[],const int n,const
int t){ int total = 0; if (NULL == a && 0 >= n) return total; int
start = 0; int end = n-1...
分类:
其他好文 时间:
2014-05-18 18:51:03
阅读次数:
175
上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解。
下面我们开始今天的旅行,首先祝你旅行愉快,呵呵。
静态查找
若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性...
分类:
其他好文 时间:
2014-05-18 13:26:40
阅读次数:
299
题目:给定一个数组,以及一个 target 值,target 表示目标和,要求在数组中找到两个数,xi,xj,使得 xi + xj = target。返回值是找到的两个数的下标索引,升序排序。假定至少存在一对解。
分析:对于要处理数组的问题,我们的理想状态都是给定的数组是有序的就好了,在有序后,我们就可以首位各放一个标记。类似于二分查找。
vector twoSum(vector &n...
分类:
其他好文 时间:
2014-05-18 08:04:03
阅读次数:
234
#includeint BinarySearch(const int a[],const int
t,int lengh) ///暂时没错的版本,注意middle最好不要直接赋值,因为那样如果找不到,会引起死循环{
printf("%d",sizeof(a));///放到这里输出为4 int s.....
分类:
其他好文 时间:
2014-05-18 02:45:12
阅读次数:
233
统计一个数字在排序数组中出现的次数。例如输入{2,2,2,2,2,3,5,5}和数字2,输出5.常规的顺序扫描法时间复杂度是O(n),可以进一步优化。用二分查找的方法进行查找可以把时间复杂度降为O(logn)。
分类:
其他好文 时间:
2014-05-17 22:22:39
阅读次数:
256
适配器模式
现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。 (要求实现快速排序和...
分类:
编程语言 时间:
2014-05-15 23:07:47
阅读次数:
423
//功能:二分查找import java.util.*;public class Demo1 {
public static void main(String[] args) { int arr[]={2,5,7,12,25};//定义arr数组并赋值
System.out.print("请输入你需...
分类:
编程语言 时间:
2014-05-15 22:11:22
阅读次数:
421
问题描述:已知有序数组a[N],
从中间某个位置k(k未知,k=-1表示整个数组有序)分开,然后将前后两部分互换,得到新的数组,在该新数组的查找元素x。如:a[]={1,2,5,7,9,10,15},从k=4分开,得到新数组a={9,10,15,
1,2,5,7}。 1 #include "stda...
分类:
其他好文 时间:
2014-05-15 10:49:37
阅读次数:
334