K5对分查找算法 账号余额 余额保存 空应

K5对分查找算法 账号余额 余额保存 空应

2024-11-10 07:00:00  鲸学教育
小明设计了某单位的公积金查询系统,输入职工的公积金账号,可以查出该账号对应的余额。所有职工的公积金账号和相应的余额已分别保存在数组a(按从小到大排序)和数组b 中,第i个职工的账号保存在a(i)中,对应的账号余额保存在b(i)中。
程序界面如图所示,左边列表框Listl中显示的是部分职工的账号和余额,在文本框Textl中输入职工的公积金账号,单击“查询余额”按钮(Commandl)后,如果找到此账号,则在标签Label2中显示“此账号余额为”和账号对应的余额值,如果未找到则显示“找不到此账号,请重新输入”。

解决此问题的算法流程图如图所示,相应的查找部分程序段如下:
Dim a(1 To n)As Long
Dim b(1 To n)As Single
Private Sub Command l_Click()

【答案】

(1)对分查找 (2)m=Fix((i+j)/2) (3)i=m+1

【本题解析】

此题考查vb的综合应用。
(1)据题,据图都可以分析得此查找方法选取了数据中值,区分了数据上下区域等,所以可得此方法属于对分查找。
(2)据题分析可以明显得到此空应填数据范围的中值,而数据中值的公式为Fix((i+j)/2),所以由此可得答案应为m=Fix((i+j)/2) 。
(3)据题“ Elself x﹤a(m)Then
j=m-l
Else”分析可得此空应是x>a(m)的情况,那么可得下一次查找的范围应原范围 的下半部分,即[m+1,j],所以可得答案为i=m+1。

专注浙江信息技术辅导,通用技术辅导 鲸学,用心做好技术辅导

预约1对1