给定一个整数X和整数A0,A1,…,AN-1,后者已经预先排序并在内存中,求下标i使得Ai = X , 如果X不在数据中则返回i = -1 。明显的解法是从左往右扫描,花费线性时间。但是这个算法没有用到该表已经排序这个事实。折半检索(binary search,二分法检索)策略:/** * Perf...
分类:
其他好文 时间:
2014-07-16 23:25:47
阅读次数:
233
1.折半查找算法:对于一个已排好序的数组,若要查找某元素是否属于数组中,则可以用这种算法。返回找到的元素在数组中的下标,找不到则返回-1#include #define LEN 8int a[LEN] = { 1, 3, 3, 3, 4, 5, 6, 7 };int binarysearch(int...
分类:
其他好文 时间:
2014-07-16 19:34:22
阅读次数:
135
Description
有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。请你求出这个方程的三个实根。
Input
只有一行,包括4个实数a,b,c,d,中间用一个或多个空格隔开。
Output
只...
分类:
其他好文 时间:
2014-07-13 15:31:03
阅读次数:
238
概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。...
分类:
其他好文 时间:
2014-07-12 23:28:08
阅读次数:
362
1Enum>类这是所有 Java 语言枚举类型的公共基本类。2 常见排序算法冒泡法。简单。比较小的需求可以采用此方法。快速排序。确定关键字,将数据分为小于和大于关键字两部分。然后递归快排这两部分。插入排序。将数据分为有序和无序两部分,逐一遍历无序部分,将记录逐条插入有序部分。有改进的折半插入排序,即...
分类:
其他好文 时间:
2014-07-10 11:50:16
阅读次数:
244
pow(base, exponent)
考虑一下几种情况:
base = 0, 那么直接返回0
base = 1, 那么直接返回1
exponent = 0, 那么直接返回1, 注意base= 0
exponent = 1, 那么直接返回 base
exponent 为正为负 的情况
主要考察的点是将问题缩减,用折半的思想。这个题细节还是很多的,为了便于验证,leetcode上恰好...
分类:
其他好文 时间:
2014-07-08 15:32:43
阅读次数:
157
与折半查找是同一个模式,不同的是,在这里不在查找某个确定的值,而是查找确定值所在的上下边界。
def getBounder(data, k, start, end, low_bound = False):
if end < start : return -1
while start > 1
if data[ mid ] ...
分类:
其他好文 时间:
2014-07-06 12:18:00
阅读次数:
311
数字在排序数组中出现的次数 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 统计一个数字在排序数组中出现的次数.通过折半查找, 找到首次出现的位置, 再找到末次出现的位置, 相减即可.时间复杂度O(logn).代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike
...
分类:
其他好文 时间:
2014-07-06 09:45:25
阅读次数:
177
以下四个验证性实验都做。(1)顺序查找验证(2)折半查找验证(3)二叉排序树的建立(4)哈希表的建立#include#include#include#include#include#includeusing namespace std;class dijiuzhang{public: int ...
分类:
其他好文 时间:
2014-07-02 20:24:09
阅读次数:
374