zoukankan      html  css  js  c++  java
  • 算法----练习题2

    思路:

      方法一:

        固定一个值,然后再列表里里依次选择数进行查找

    def choice(data_set,val):
       for i in range(len(data_set)):
           if data_set[i] > val:
               continue
           for j in range(i + 1,len(data_set)):
               if data_set[i] + data_set[j] == val:
                   return (i,j)
    
    data_set = [1,2,5,4]
    print(choice(data_set,3))

    结果显示为:

      方法二:

        利用二分查找法,数值的和减去依次查找的数值,然后再列表里查找商

    import copy
    
    def bin_search(data_set,val,low,high):
        while low <= high:
            mid = (low + high) // 2
            if data_set[mid] == val:
                return  mid
            elif data_set[mid] > val:
                high =mid - 1
            else:
                low =mid + 1
        return
    
    def choice_2(data_set,target):
        data_set_1 = copy.deepcopy(data_set)
        data_set_1.sort()
        print(data_set_1)
        for i in range(len(data_set_1)):
            a = i
            b = bin_search(data_set_1,target - data_set_1[a],i + 1,len(data_set_1) - 1 )
            if b:
                return (data_set.index(data_set_1[a]),data_set.index(data_set_1[b]))
    
    data_set = [1,2,5,4]
    print(choice_2(data_set,3))

     结果显示为:

     

  • 相关阅读:
    flash 语法 入门
    flash 代码 雪花飘落
    test windows live writer
    网站索引
    [转]jquery入门简介
    forcast iframe 及 四款播放器
    flash
    flash 备忘
    浏览器默认HTML的CSS样式属性
    简单多线程拷贝单文件示例
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9222691.html
Copyright © 2011-2022 走看看