C言語なら俺に聞け<35>
■ このスレッドは過去ログ倉庫に格納されています
0356再帰???
NGNGんですが、どうしても上手くいきません。再帰を使わず
にはできたのですが・・・。 教えてください。
(再帰を使わない二分探索)
#include <stdio.h>
int binsearch(int x,int v[],int n){
int p,q,m;
p=0;
q=n-1;
while(p<=q){
m = (p+q)/2;
if(x<v[m])
q=m-1;
else if(x>v[m])
p=m+1;
else return m+1;}
return -1;}
main(){
int i,l,m;
int data[20];
int bin;
printf("input l >"); /* 配列の長さ */
scanf("%d",&l);
for(i = 0;i<l;i++){ /* データの入力 */
printf("data[%d] =",i+1);
scanf("%d",&data[i]);}
printf("input m >"); /* 探索キー */
scanf("%d",&m);
bin = binsearch(m,data,l);
printf("answer is data[%d].\n",bin);}
■ このスレッドは過去ログ倉庫に格納されています