資料結構/費式搜尋比較次數問題 - 考試
By Heather
at 2013-01-11T23:52
at 2013-01-11T23:52
Table of Contents
※ 引述《pthread (QQ)》之銘言:
: 假設今天有如下數列
: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
: 如果用費式搜尋搜尋以下鍵值 2,10,15
: 各需要幾次比較次數呢~?
: 我的答案是
: 2:5次 15:4次 10:4次
: 因為跟書上的答案不一樣,算的不知道對不對
: 煩請各位版友指正
怎麼每個人答案不一
用程式跑出的結果跟我自己算的一樣
#include <iostream>
#define FibNum 20
using namespace std;
int fibsearch(int [],int [],int,int,int);
int main(){
int k;
int n=16;
int data[16]={1,2,9,16,20,21,52,59,92,97,100,120,122,130,140,145};
int F[FibNum];
F[0]=0;
F[1]=1;
for(int i=2;i<FibNum;i++){
F[i]=F[i-1]+F[i-2];
}
for(k=0;k<FibNum;k++){
if((n>F[k]-1)&&(n<=F[k+1]-1))
break;
}
k++;
cout<<k<<endl;
int input;
cout << endl << "請輸入欲搜尋之資料內容 => ";
cin >> input;
cout<<fibsearch(data,F,n,k,input)<<endl;
system("pause");
return 0;
}
int fibsearch(int a[],int fib[],int n,int k,int key){
int l=0,r=n-1,m;
int flag=0;
for(int i=n;i<fib[k]-1;i++)
a[i]=a[n-1];
while(l<=r){
flag++;
m=l+fib[k-1]-1;
if(a[m]==key){
if(m<n){
cout<<"呼叫次數:"<<flag<<endl;
return m;}
else
return n-1;
}
else if(a[m]>key){
r=m-1;
k=k-1;
}
else{
l=m+1;
k=k-2;
}
}
return -1;
}
--
: 假設今天有如下數列
: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
: 如果用費式搜尋搜尋以下鍵值 2,10,15
: 各需要幾次比較次數呢~?
: 我的答案是
: 2:5次 15:4次 10:4次
: 因為跟書上的答案不一樣,算的不知道對不對
: 煩請各位版友指正
怎麼每個人答案不一
用程式跑出的結果跟我自己算的一樣
#include <iostream>
#define FibNum 20
using namespace std;
int fibsearch(int [],int [],int,int,int);
int main(){
int k;
int n=16;
int data[16]={1,2,9,16,20,21,52,59,92,97,100,120,122,130,140,145};
int F[FibNum];
F[0]=0;
F[1]=1;
for(int i=2;i<FibNum;i++){
F[i]=F[i-1]+F[i-2];
}
for(k=0;k<FibNum;k++){
if((n>F[k]-1)&&(n<=F[k+1]-1))
break;
}
k++;
cout<<k<<endl;
int input;
cout << endl << "請輸入欲搜尋之資料內容 => ";
cin >> input;
cout<<fibsearch(data,F,n,k,input)<<endl;
system("pause");
return 0;
}
int fibsearch(int a[],int fib[],int n,int k,int key){
int l=0,r=n-1,m;
int flag=0;
for(int i=n;i<fib[k]-1;i++)
a[i]=a[n-1];
while(l<=r){
flag++;
m=l+fib[k-1]-1;
if(a[m]==key){
if(m<n){
cout<<"呼叫次數:"<<flag<<endl;
return m;}
else
return n-1;
}
else if(a[m]>key){
r=m-1;
k=k-1;
}
else{
l=m+1;
k=k-2;
}
}
return -1;
}
--
Tags:
考試
All Comments
By Emma
at 2013-01-14T17:05
at 2013-01-14T17:05
Related Posts
成本會計-聯產品與副產品
By Dinah
at 2013-01-11T23:35
at 2013-01-11T23:35
請問化工所可以考哪些相關單位
By Daniel
at 2013-01-11T23:01
at 2013-01-11T23:01
可以請教有考會計這科的戰友們
By Rosalind
at 2013-01-11T22:57
at 2013-01-11T22:57
可以請教有考會計這科的戰友們
By Damian
at 2013-01-11T22:46
at 2013-01-11T22:46
100年稅特三等「會計學」
By Kyle
at 2013-01-11T22:23
at 2013-01-11T22:23