用python这样实现,不知道是不是实现了线性查找,老师帮看下

用python这样实现,不知道是不是实现了线性查找,老师帮看下


class LinearSearch(object):

    

    def search(self, data, target):

        j = 0

        for i in range(len(data)):

            if data[i] == target:

                j = i

                #break

        if j:

            return j

        else:

            return -1

            

if __name__ == '__main__':          

    ls = LinearSearch()

    data = [24, 18, 12, 9, 16, 32, 27]

    num = ls.search(data,16)

    print(num)


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

思路是可以的,逻辑有些问题,j 默认为 0,那么整个循环结束以后,即使找不到,也会返回 0,而不会返回 -1。


继续加油!:)

  • if j:

                return j

    else:

                return -1

    当j为0的时候,就进入了else,所以应该是返回-1,所以应该没错吧?

    2020-12-03 21:16:16
  • 要查找的元素在位置零怎么办?
    2020-12-03 21:17:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2593    人
  • 解答问题       1090    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师