我想用汇编程序motrolla 68K编写这个递归二进制搜索。
int binSearch(int key, int &lo, int &hi) {
if(hi < lo)
return NOT_FOUND; //RETURN with V = 1
int mid = (lo+hi) / 2;
if(key == array[mid])
return mid;
else if(key < array[mid]) // go left
return binSearch(key, lo, mid-1); // left
else
return binSearch(key, mid+1, hi); // right
}
所以我只是想知道我是否正在编写int binsearch(int key,int&lo,int &hi)
部分
任何帮助!! ????????????
link A6,#0
movem.l D1,D2-(sp)
move.w 8(A6),D1 *key
如果我想做int&low,int hi
,我会用A5,A4..ect做同样的事情吗?
答案 0 :(得分:0)
我发现您可能会考虑在代码中查看以下几点:
array
传递给binsearch
array
之前已排序 array
内容的类型应为int
,以便与key
进行有效比较ps:拜托,你能澄清一下第二部分吗?您是否尝试将C转换为汇编?