本小节知识点:1. 【掌握】基本思路2. 【掌握】实现步骤3. 【了解】练习##1.基本思路- 在有序表中,取中间元素作为比较对象,若给定值与中间元素的要查找的数相等,则查找成功;若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找;- 若给定值大于中间元素的要查找的数,则在中间元素的右半...
分类:
编程语言 时间:
2015-10-20 06:35:40
阅读次数:
137
在一个有序数组中,利用二分法的思想找出数组中的内容。#include<stdio.h>
#include<stdlib.h>
intbinsearch(intx,intarr[],intleft,intright)
{
while(left<=right)
{
intmid=left-(left-right)/2;
if(arr[mid]==x)
{
returnmid;
}
elseif(arr[mid]<x)
{
l..
分类:
其他好文 时间:
2015-10-15 06:35:07
阅读次数:
193
//折半查找
#include<stdio.h>
intdichotomy(intm,intarr[],intleft,intright)
{
intmid;
while(left<=right)
{
mid=left-(left-right)/2;
if(m<mid)
right=mid-1;
elseif(m>mid)
left=mid+1;
else
returnmid;
}
return-1;
}
intmain()
{
inta[]={2,4,6,8,10,12..
分类:
编程语言 时间:
2015-10-15 06:27:48
阅读次数:
144
#include<stdio.h>
#include<stdlib.h>
intsearch(inta[],inti,intlen)
{
intstart,end,mid;
start=0;
end=len-1;
if((i<a[start])||(i>a[end]))
{
return-1;
}
while(start<=end)
{
mid=(start+end)/2;
if(a[mid]<i)
{
start=mid+..
分类:
其他好文 时间:
2015-10-14 01:50:05
阅读次数:
171
#include<stdio.h>#include<stdlib.h>intmain(){intret=0;intarr[]={1,2,5,6,88,99,456,666};ret=binsearch(666,arr,0,sizeof(arr)/sizeof(arr[0])-1);if(ret!=-1){printf("%d",ret);}else{printf("notexist");}return0;}intbinsearch(intx,intarr[],intleft,intri..
分类:
编程语言 时间:
2015-10-13 13:56:40
阅读次数:
126
#include<stdio.h>
intbin_search(intarr[],intstart,intend,intsearch)
{
while(start<=end)
{
intmid=(start+end)/2;
if(arr[mid]>search)
{
end=mid-1;
}
elseif(arr[mid]<search)
{
start=mid+1;
}
else
{
returnmid;
}
}
return-1;
}
intmain()
{
intarr[..
分类:
其他好文 时间:
2015-10-13 01:51:21
阅读次数:
134
非递归法:#include<stdio.h>
#include<stdlib.h>
#definenumber6
intbinsearch(intx,int*arr,intleft,intright);
intmain()
{
intx=0,inter=0;
intarr[number]={1,5,12,36,45,98};
/*
*printf("请输入可查找到的数:>");
*for(inti=0;i<sizeof(arr)/si..
分类:
编程语言 时间:
2015-10-13 01:45:11
阅读次数:
204
在C#中,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。数组 数组在C#中是最早出现的。它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单。可以利用偏移地址访问元素,时间复杂度为O(1);可以用折半查找法查找元素,效率高。 string[] s....
分类:
编程语言 时间:
2015-10-11 14:05:48
阅读次数:
438
数组中的折半查找:只对有序的数组有效,取中间元素与查找的元素对比,如果需要查找的元素比中间元素大,则把查找范围缩小一半,以此类推,知道找到为止public class Zheban { public static void main(String[] args) { int[] a={1,2,3,....
分类:
其他好文 时间:
2015-10-05 18:10:36
阅读次数:
119
最近看见一个要求仅使用加法减法实现二分查找的题目,百度了一下,原来要用到一个叫做斐波那契查找的的算法。查百度,是这样说的:斐波那契查找与折半查找很相似,他是根据斐波那契序列的特点对有序表进行分割的。他要求开始表中记录的个数为某个斐波那契数小1,即n=F(k)-1;开始将k值与第F(k-1)位置的记录...
分类:
其他好文 时间:
2015-09-25 23:06:11
阅读次数:
352