顺序查找和折半查找
QBasic语言
参考答案:顺序查找法
假设:num(i)为学生学号,nam$(i)为姓名,num为查找对象。
SUB Search
FOR i=1 TO n
IF num=num(i) THEN
PRINT "num";num(i)
PRINT "name";nam$(i)
EXIT FOR
END IF
NEXT i
IF i>n THEN num ;"not found"
END SUB
折半查找法(二分查找法);
对按一定规律(由小到大或由大到小)排列好的数据进行检索;假设:num(i)为按从小到大排列的学生学号,nam$(i)为姓名,num为查找对象。
SUB Search
top=1
bot=n
find=0
DO
mid=INT((top+bot)/2)
IF num=num(mid) THEN
PRINT "num";num(i)
PRINT "name";nam$(i)
find=1
ELSEIF num bot=mid-1
ELSEIF num>num(mid) THEN
top=mid+1
END IF
LOOP UNTIL ((botIF find=0 THEN num ;"not found"
END SUB