1.背景 以一个题目为例,一个整数x是一组按大小顺序排列好的数列中的一个数,我们要找到x在数列中的索引位置。比如按从小到大排列的数列:-3,-2,0,4,5,7,12,64我们要找到数字7的位置,如果是线性查找,时间复杂度是O(n),如果用折半查找的话,时间复杂度是O(log(n)),因为每次折半,计算量少一半,所以取对数。2.代码package Algorithm_analysis;...
分类:
编程语言 时间:
2014-11-24 22:29:01
阅读次数:
367
Implementint sqrt(int x).Compute and return the square root ofx.这里给出两种实现方法:一是二分搜索,二是牛顿迭代法。1. 二分搜索对于一个非负数n,它的平方根不会小于大于(n/2+1)。在[0, n/2+1]这个范围内可以进行二分搜索,...
分类:
其他好文 时间:
2014-11-24 16:48:43
阅读次数:
229
#include using namespace std;int search(int key){ int i; int a[150]; for(i=0;i>a; num=search(a); if(num==0) { cout<<"您输入的数不存在"<<endl; } else cout<...
分类:
其他好文 时间:
2014-11-23 13:03:31
阅读次数:
176
先瞎叨叨几句: 不知道该给这种算法起个啥名字,暂且就叫它缩步查找法吧,毕竟用到了缩短步长的思想。这是一个懒惰的产物,因为懒得写二分(其实是因为自己的二分老写错),然后就阴差阳错的想出了这种瞎胡搞的算法。后来在一些比赛中还用到过几次,效果不错,所以就想把这个算法具体给分析一遍,就是因为这算法,我...
分类:
编程语言 时间:
2014-11-16 21:24:38
阅读次数:
254
/**
* 书本:《算法分析与设计》
* 功能:二分搜索
* 1、设a[0:n-1]是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中的时候,返回小于x的最大元素
* 的位置I和大于x的最小元素位置j。当搜索元素在数组中的时候,I和j相同,均为x在数组中的位置
* 文件:lesson3.cpp
* 时间:2014年11月4日19:50:20
* 作者:cutter_point...
分类:
编程语言 时间:
2014-11-16 20:13:03
阅读次数:
178
算法分析:数据元素有序,设3个变量low、mid、high保存数组元素的开始、中间以及末尾序号, 将Key值与a[mid]比较,不断缩小查找范围,直至查找成功或者失败。代码: 1 while(low x) 7 high=mid-1; //"mid-1" → "-" ...
分类:
编程语言 时间:
2014-11-15 16:41:19
阅读次数:
124
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;
二叉树的操作:
1.查找:
例如查找...
分类:
其他好文 时间:
2014-11-14 15:47:23
阅读次数:
226
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为: 1.第一步查找中间元素,即5,由于5,则6必然在5之后的数组元素中,那么就在{...
分类:
编程语言 时间:
2014-11-13 12:57:44
阅读次数:
189
1 package com.gxf.search; 2 3 /** 4 * 测试折半查找or二分查找 5 * @author xiangfei 6 * 7 */ 8 public class BiSearch { 9 10 /**11 * 非递归实现,从第1个元...
分类:
其他好文 时间:
2014-11-13 00:25:37
阅读次数:
247
1. 顺序表查找(Sequential Search)1> 算法思想:顺序表查找应该是查找算法中最简单的了。顺序表中所有的记录都是无序的,因此在查找时,没有对查找对象范围的可能线索,唯一的方法就是沿着一个方向一直比较,直到和查找对象相等。完成查找的过程。这里一个优化点是设置一个哨兵,放在顺序表的开始...
分类:
编程语言 时间:
2014-11-13 00:23:22
阅读次数:
397