栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python查找算法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python查找算法

顺序查找

1.顺序查找: 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于给定值的结点,表示查找失败。

	def line_search(data, num):
    for index, val in enumerate(data):
        if val == num:
            return index
    return None
二分法查找

2.二分法查找: 分法查找又称折半查找。二分法查找是在一个有序列表的基础上完成的,要查找的值x和列表的中间值m作比较,如果x大于m,那么接下来从m+1的右区间内再以相同方法取中间值做判断,循环往复此过程,直到判断出x=m的时候就是查找成功。否则相反。返回类型为布尔值

def binary_seach(data, num):
    left = 0
    right = len(data) - 1
    while left <= right:
        mid = (left + right) // 2
        if data[mid] == num:
            return mid
        elif data[mid] > num:
            right = mid - 1
        else:
            left = mid + 1
    return None

def binary_search(alist, item):
    """二分查找,递归"""
    n = len(alist)
    if n > 0:
        mid = n//2
        if alist[mid] == item:
            return True
        elif item < alist[mid]:
            return binary_search(alist[:mid], item)
        else:
            return binary_search(alist[mid+1:], item)
    return False
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号