- 135 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:27:56 ]
- >>133
int binarysearch(int v){ /* ここにプログラムを追加 */ int l = 0, r = N-1,x; while( l<=r ) { x = (l + r) / 2; printf("%d %d %d \n",l,x,r); if( v == a[x] ) return 0; /* 見つかった */ if( v > a[x] ) l = x + 1; if( v < a[x] ) r = x - 1; } return -1; } int interpolationsearch(int v){ /* ここにプログラムを追加 */ int l = 0, r = N-1,x; while( l<=r ) { x = l + (v - a[l]) * (r - l) / (a[r]-a[l]); if(x < 0) return -1; if(x >= N) return -1; printf("%d %d %d \n",l,x,r); if( v == a[x] ) return 0; /* 見つかった */ if( v > a[x] ) l = x + 1; if( v < a[x] ) r = x - 1; } return -1; }
|

|