找到二个数组中第几大的数据。(答案讨论贴),如果想答题拿分的建议先去答题,再来看答案
'解题思路
'设置二个指针,分别指向 数组A与数组B
'先设置A指针指向A的第N位。B指针指向B的第一位
'以下是循环部分
'如果A指针指向的数据大于B指针指向的数据。则直接返回A指针指向的数据。
'如果A指针指向的数据小于B指针指向的数据。则进行以下判断
'1.如果A指针指向的数据大于B指针指向的下一数据,则进行以下判断
'1.1 A指针指向的上一数据小于B指针指向的数据,则直接返回A指针上一指向的数据。
'1.2 A指针指向的上一数据大于B指针指向的数据,则直接返回B指针指向的数据。
'2.如果A指针指向的数据小于B指针指向的下一数据,则对指针进行移位。A指向上一位,B指向下一位
'因此,最差的情况下是,A指向循环至最第一位。循环N次。
'最好的情况下是:不会循环,第一次就成功/
'Arr_1 = Array(43, 42, 32, 18, 11, 9, 7, 0, -1)
'Arr_2 = Array(38, 37, 31, 15, 12, 5, -1)
'取第六位的示例:
'A指针指向数据 9 B指针指向数据 38
'9<38 进行判断 9<37
'A指向11 B指向 37
'11<37 进行判断 11<31
'A指向 18 B指向 31
'18<31 进行判断 18>15(子判断 33>31)返回31
'一共进行了二次循环
'不知我以上的解题思路是否有问题?
'欢迎大家讨论完善.
'如果大家另取方法,比我的这个方法的时间及空间复杂度更小的话.在此贴中又可获得50%的奖励分哦.
...全文


VB基础类
