二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效...
分类:
编程语言 时间:
2014-09-04 18:45:49
阅读次数:
234
题目大意就是找到一个环使得顶点权值之和与边权之和的比率最大
首先,需要注意的是题目要求可以从任意一点开始,网上很多解题报告默认的从1点开始,虽然过了此题,但是显然是不太对的。
由于题目是求的max,那么在边权变形后,用
SPFA求最长路,看是否出现正环, 然后根据这个进行二分查找。
#pragma comment(linker, "/STACK:1024000000,102400...
分类:
其他好文 时间:
2014-09-04 17:00:39
阅读次数:
163
冒泡排序:#include #include #include #define N 100000#define M 100000void show_arr(int * a,int n){ int i; for(i = 0; i a[j+1]) { temp = a[j]; a[j] = a[j+1]...
分类:
其他好文 时间:
2014-09-03 22:41:07
阅读次数:
232
思路: 从右上方开始,若小于 target, 则往下走;若大于 target, 对改行二分查找;若等 target, 返回 true.
思路: 斐波那契。此处用动归。 还可以使用矩阵二分乘。(剑指offer: 题9)
分类:
其他好文 时间:
2014-09-03 19:42:47
阅读次数:
249
最近整理了下以前的资料。有的算法没有实现,嘿嘿,以后再补吧!
/**
*排序算法的分类如下:
*1.插入排序(直接插入排序、折半插入排序、希尔排序);
*2.交换排序(冒泡泡排序、快速排序);
*3.选择排序(直接选择排序、堆排序);
*4.归并排序;
*
关于排序方法的选择:
*(1..
分类:
编程语言 时间:
2014-09-03 15:06:27
阅读次数:
262
//思路就是大整数数组保存fib数,然后二分查找import java.util.*;import java.math.*;import java.io.*;class Main { public static void main(String[] args) { // TODO...
分类:
其他好文 时间:
2014-09-02 21:18:15
阅读次数:
184
题目来源:URAL 1439. Battle with You-Know-Who
题意:开始有数列1, 2, 3, ... L k输出第k大的数 D k删除第k大的数
思路:treap树插入删除的数 每次二分查找第k大的数为mid 查询treap小于等于mid的数有y个 那么mid应该是第mid-y大的数 与k比较 继续二分
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-09-02 15:58:14
阅读次数:
214
http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1185
判断 x3+y3 = c 是否存在正整数解,2≤c≤109
首先把给定范围内的所有情况打表用数组保存,然后直接二分查找c即可。
#include
#include
using namespace std;
int cnt,a[1010000];
bool fin...
分类:
其他好文 时间:
2014-09-02 15:52:14
阅读次数:
248
二分查找主要有三点需要注意:
1、边界问题
2、求中点时的溢出问题
3、有重复值时定位第一个
代码如下:
int BinarySearch(int array[], int n, int v)
{
int left, right, middle;
left = -1, right = n;
while (left + 1 != right)
{
middle = left +...
分类:
其他好文 时间:
2014-09-01 17:47:43
阅读次数:
228
二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组。将数组的中间项与T进行比较,可以排除一半元素,范围缩小一半。就这样反复比较,反复缩小范围,最终就会在数组中找到T,或者确定原以为T所在的范围实际为空。对于包含N个元素的表,整个查找过程大约要经过log(2)N次比较。
#!/usr/bin/env ...
分类:
编程语言 时间:
2014-09-01 15:38:33
阅读次数:
198