在一个有序数组中,利用二分法的思想找出数组中的内容。#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
                             
                    
                        
                            
                            
                                折半搜索,先搜索一半的数字,记录第一个人的值,第二个人、第三个人和第一个人的差值,开个map哈希存一下,然后另一半搜完直接根据差值查找前一半的答案。 代码 1 #include 2 #include 3 #define ll long long 4 #define N 100 5 using ...
                            
                            
                                分类:
其他好文   时间:
2015-10-14 21:39:50   
                                阅读次数:
308
                             
                    
                        
                            
                            
                                #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
                             
                    
                        
                            
                            
                                一、折半插入排序(二分插入排序)将直接插入排序中寻找A[i]的插入位置的方法改为採用折半比較,就可以得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比較,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比較,假设A[i]的关键码...
                            
                            
                                分类:
编程语言   时间:
2015-10-06 09:09:27   
                                阅读次数:
217
                             
                    
                        
                            
                            
                                数组中的折半查找:只对有序的数组有效,取中间元素与查找的元素对比,如果需要查找的元素比中间元素大,则把查找范围缩小一半,以此类推,知道找到为止public class Zheban {	public static void main(String[] args) { int[] a={1,2,3,....
                            
                            
                                分类:
其他好文   时间:
2015-10-05 18:10:36   
                                阅读次数:
119