探知,不断发现
探知不断发现

 

// 地址空间从0开始到8000结束 步长为8
            int position = 8000;
            
int number = int.Parse(txtNumber.Text);
            
int[] numbers = new int[position];
            
for(int i=0;i<position;i++)
            
{
                numbers[i] 
= i;
            }

            
int offset = 8;
            
long low = 0;
            
long high = position - offset;
            
long mid = 0;
            
string sign = "没有找到";
            
while(low <= high)
            
{
                mid 
= (low + high)/2;
                
if (mid % 2 != 0//这边不能为步长//步长为1的时候不需要这个
                {
                    mid 
= (low + high - offset)/2;//减一个步长肯定是合适的.
                }

                
if (numbers[mid] == number)
                
{
                    sign 
= mid.ToString() + "找到:";
                    
break;
                }

                
if (numbers[mid] > number)
                
{
                    high 
= mid - offset;    
                }

                
if (numbers[mid] < number)
                
{
                    low 
= mid + offset;
                }

                
            }

            txtHTML.Text 
= sign;
   
//另一种方法
            long position;
            
long low = 0;
            
long high = 5000;//表示有多少个这样步长,如果是地址应该是 5000*8
            long mid = 0;
            
int offset = 8;
            
string sign = "没有找到";
            
while(low <= high)
            
{
                mid 
= (low + high)/2;
                
if (numbers[mid] == number)
                
{
                    
int find =  (mid * offset) + position;
                    sign 
= find.ToString();
                    
break;
                }

                
if (numbers[mid] > number)
                
{
                    high 
= (mid - 1)  * offset + position;    
                }

                
if (numbers[mid] < number)
                
{
                    low 
= (mid + 1* offset + position;
                }

                
            }

            txtHTML.Text 
= sign;
posted on 2006-04-14 16:27  lovebanyi  阅读(262)  评论(0)    收藏  举报