[問題] return用法
#include <iostream>
using namespace std;
int binsearch(int * dset, int ib, int ie, int data)
{
cout << "search: ib = " << ib << ", ie = " << ie << endl;
int ii;
if (ib > ie)
{ii = -1; }
else {
ii = (ib + ie) / 2;
if (dset[ii] > data)
{ ii = binsearch(dset, ib, ii-1, data);
} else if (dset[ii] < data) {
ii = binsearch(dset, ii+1, ie, data);
}
}
cout <<"search ib = "<<ib<<", ie = "<<ie<<" return: "<<ii<<endl;
return ii; //回傳到哪呢?
}
int main()
{int dset[] = {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33};
cout << "Final data 13 is at: " << binsearch(dset,0,15,13) << endl;
cout << "Final data 20 is at: " << binsearch(dset,0,15,20) << endl;
return 0;
system("pause");
}
=======================================
印出
search: ib = 0, ie = 15
search: ib = 0, ie = 6
search: ib = 4, ie = 6
search: ib = 6, ie = 6
search ib = 6, ie = 6 return: 6
search ib = 4, ie = 6 return: 6 //請問這行是如何印出的?
search ib = 0, ie = 6 return: 6
search ib = 0, ie = 15 return: 6
Final data 13 is at: 6
search: ib = 0, ie = 15
search: ib = 8, ie = 15
search: ib = 8, ie = 10
search: ib = 10, ie = 10
search: ib = 10, ie = 9
search ib = 10, ie = 9 return: -1
search ib = 10, ie = 10 return: -1
search ib = 8, ie = 10 return: -1
search ib = 8, ie = 15 return: -1
search ib = 0, ie = 15 return: -1
Final data 20 is at: -1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: chot 來自: 218.172.87.94 (02/13 00:19)
推
02/13 00:24, , 1F
02/13 00:24, 1F
→
02/13 00:24, , 2F
02/13 00:24, 2F
→
02/13 00:25, , 3F
02/13 00:25, 3F
→
02/13 00:25, , 4F
02/13 00:25, 4F
→
02/13 00:26, , 5F
02/13 00:26, 5F
→
02/13 00:27, , 6F
02/13 00:27, 6F
→
02/13 00:28, , 7F
02/13 00:28, 7F
→
02/13 00:29, , 8F
02/13 00:29, 8F
→
02/13 02:14, , 9F
02/13 02:14, 9F
推
02/13 11:52, , 10F
02/13 11:52, 10F
推
02/13 13:34, , 11F
02/13 13:34, 11F
→
02/13 13:34, , 12F
02/13 13:34, 12F
推
02/14 23:52, , 13F
02/14 23:52, 13F
推
02/15 08:39, , 14F
02/15 08:39, 14F
→
02/15 08:39, , 15F
02/15 08:39, 15F
推
02/16 11:39, , 16F
02/16 11:39, 16F