使用Python实现折半查找有序列表中的某个元素
2019-08-07 19:52
225 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cute_boy_/article/details/98779237
# 子问题算法(子问题规模为 1) def is_in_list(init_list, el): return [False, True][init_list[0] == el] # 分治法 def solve(init_list, el): n = len(init_list) if n == 1: # 若问题规模等于 1,直接解决 return is_in_list(init_list, el) # 分解(子问题规模为 n/2) left_list, right_list = init_list[:n // 2], init_list[n // 2:] # 递归(树),分治,合并(此处为深度优先,注意逻辑短路) res = solve(left_list, el) or solve(right_list, el) return res if __name__ == "__main__": # 测试数据 test_list = [12, 2, 23, 45, 67, 3, 2, 4, 45, 63, 24, 23] # 查找 print(solve(test_list, 45)) # True print(solve(test_list, 5)) # False
相关文章推荐
- Python实现对嵌套列表字典按某一元素合并及lambda的使用
- 13.使用二分法实现在一个有序列表中查找指定的元素
- Python 使用nltk对序列元素(eg. 列表)的频谱计算小结
- python数据结构学习笔记-2016-10-24-02-使用排序列表实现集合ADT
- 如何用python实现剔除列表中相同的元素
- Python两个列表里元素对应相乘,实现方法
- 使用python的yield实现任务调度.给定一个任务列表,每个任务轮流切换执行,类似于切片
- Python实现列表删除重复元素的三种常用方法分析
- python实现在遍历列表时,直接对dict元素增加字段的方法
- 分别用的列表,递归,生成器三种方式创建出n个元素的斐波那契数列(Python3实现)
- python——使用itemgetter和sorted对列表内的元素进行排序
- python实现:使用二分查找,查找有序数组中,一个数字最后出现的下标
- Python实现判断并移除列表指定位置元素的方法
- 使用python中的in ,not in来检查元素是不是在列表中的方法
- Python使用Tkinter实现目录列表(文件系统遍历GUI)
- python数据结构与算法 19有序列表 ADT及实现
- python中使用heapq查看最大与最小的N个元素列表
- Python 查找有序列表中指定元素所在位置
- python实现列表对应元素求和的两种方法
- Python实现删除列表中满足一定条件的元素示例