题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。例如输入{1,2,3,4,5}的一个旋转为{3,4,5,1,2},该数组的最小值为1。
可以使用从头到尾遍历,时间复杂度为O(n),根据其特性可以使用二分查找,降低时间复杂度。
代码:
#include
using namespace std;
i...
分类:
其他好文 时间:
2014-08-05 22:45:20
阅读次数:
193
二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于 不经常...
分类:
其他好文 时间:
2014-08-05 22:08:50
阅读次数:
299
http://acm.hdu.edu.cn/showproblem.php?pid=1025
Constructing Roads In JGShining's Kingdom
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1...
分类:
其他好文 时间:
2014-08-05 19:26:50
阅读次数:
270
本章主要是算法知识的基础讲解,介绍了循环不变式,几个简单的排序算法,递归分治算法等内容。
1、循环不变式
循环不变式主要用来说明算法的正确性,那么什么是循环不变式呢,其实就是在循环过程中,一些元素数据必须保持的一些性质,例如在插入排序中,数组为A,必须保证三个性质:
(1) 初始化:在循环开始之前,循环不变式是成立的,即:A[0]是有序的,A[1...n-1]是无序的。
(2) 保持:在循...
分类:
其他好文 时间:
2014-08-05 15:53:01
阅读次数:
220
一、概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子...
分类:
Web程序 时间:
2014-08-04 21:31:58
阅读次数:
300
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4907
解题思路:就是把空余的时间单独用一个数组存起来,然后查找时用二分查找。但是这题却WA啦好多次,当时想死的心都有啦,后面才发现时数组开小了。。。
code:
#include
#include
#include
#include
#include
using namespa...
分类:
其他好文 时间:
2014-08-04 11:11:43
阅读次数:
215
代码:import java.util.ArrayList;import java.util.List;public class Bit { int max; int min; int[] arr; public Bit(int[] arrInput) { //...
分类:
其他好文 时间:
2014-08-03 17:37:45
阅读次数:
216
题目:给定一个排好序的整数数组,找到给定目标值的出现的首尾位置。
思路:二分查找。由于是有序数组,所以相同值的数是连续的,即只要找到其中一个,再向左右找到边界值就可以了,这三步均采用二分查找。...
分类:
其他好文 时间:
2014-08-03 12:48:35
阅读次数:
163
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2141题目大意:查找是否又满足条件的x值。这里简单介绍一个小算法,二分查找。 1 /* 2 3 x^2+6*x-7==y 4 输入y 求x 精确度为10^-5 5 0= 9 #includ...
分类:
其他好文 时间:
2014-08-03 12:40:35
阅读次数:
175