学习编程觉得困难有感

编程怎么开光啊!问题是:给一个严格递增数列,函数int Search_Bin(SSTable T, KeyType k)用来二分地查找k在数列中的位置。

1,一步一步来呗
2,往前走一步
3,再往前走一步
4,再更进一步

#include <iostream>
using namespace std;
#define MAXSIZE 50
typedef int KeyType;
 
typedef  struct                     
{ KeyType  key;                                             
} ElemType;  
 
typedef  struct
{ ElemType  *R; 
  int  length;
} SSTable;                      
 
void  Create(SSTable &T)
{ int i;
  T.R=new ElemType[MAXSIZE+1];
  cin>>T.length;
  for(i=1;i<=T.length;i++)
     cin>>T.R[i].key;   
}
 
int  Search_Bin(SSTable T, KeyType k);
int main () 
{  SSTable T;  KeyType k;
   Create(T);
   cin>>k;
   int pos=Search_Bin(T,k);
   if(pos==0) cout<<"NOT FOUND"<<endl;
   else cout<<pos<<endl;
   return 0;
}
int  Search_Bin(SSTable T, KeyType k)
{
    int start=0,end=T.length-1;
    while(start<=end)
    {
        int mid=(start+end)/2;
        if(T.R[mid].key==k)
        {
            return mid;
        }
        else if(T.R[mid].key>k)
        {
            end=mid-1;
        }
        else
        {
            start=mid+1;
        }
    }
    return 0;
}